| 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;
 
- 	}
 
- }
 
 
  |