| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | <?php namespace System\Validation\Rules;use System\Validation\Rangable_Rule;class Numericality_Of extends Rangable_Rule {	/**	 * Indicates that the attribute must be an integer.	 *	 * @var bool	 */	public $only_integer = false;	/**	 * The "not valid" error message.	 *	 * @var string	 */	public $not_valid;	/**	 * The "not integer" error message.	 *	 * @var string	 */	public $not_integer;	/**	 * Evaluate the validity of an attribute.	 *	 * @param  string  $attribute	 * @param  array   $attributes	 * @return bool	 */	public function check($attribute, $attributes)	{		if ( ! is_null($nullable = parent::check($attribute, $attributes)))		{			return $nullable;		}		// ---------------------------------------------------------		// Validate the attribute is a number.		// ---------------------------------------------------------		if ( ! is_numeric($attributes[$attribute]))		{			$this->error = 'number_not_valid';		}		// ---------------------------------------------------------		// Validate the attribute is an integer.		// ---------------------------------------------------------		elseif ($this->only_integer and filter_var($attributes[$attribute], FILTER_VALIDATE_INT) === false)		{			$this->error = 'number_not_integer';		}		// ---------------------------------------------------------		// Validate the exact size of the attribute.		// ---------------------------------------------------------		elseif ( ! is_null($this->size) and $attributes[$attribute] != $this->size)		{			$this->error = 'number_wrong_size';		}		// ---------------------------------------------------------		// Validate the maximum size of the attribute.		// ---------------------------------------------------------		elseif ( ! is_null($this->maximum) and $attributes[$attribute] > $this->maximum)		{			$this->error = 'number_too_big';		}		// ---------------------------------------------------------		// Validate the minimum size of the attribute.		// ---------------------------------------------------------		elseif ( ! is_null($this->minimum) and $attributes[$attribute] < $this->minimum)		{			$this->error = 'number_too_small';		}		return is_null($this->error);	}	/**	 * Specify that the attribute must be an integer.	 *	 * @return Numericality_Of	 */	public function only_integer()	{		$this->only_integer = true;		return $this;	}	/**	 * Set the "not valid" error message.	 *	 * @param  string           $message	 * @return Numericality_Of	 */	public function not_valid($message)	{		$this->not_valid = $message;		return $this;	}	/**	 * Set the "not integer" error message.	 *	 * @param  string           $message	 * @return Numericality_Of	 */	public function not_integer($message)	{		$this->not_integer = $message;		return $this;	}}
 |