12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php namespace System\Validation\Rules;
- use System\Str;
- use System\Validation\Rangable_Rule;
- class Length_Of extends Rangable_Rule {
- /**
- * 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;
- }
- $value = trim((string) $attributes[$attribute]);
- // ---------------------------------------------------------
- // Validate the exact length of the attribute.
- // ---------------------------------------------------------
- if ( ! is_null($this->size) and Str::length($value) !== $this->size)
- {
- $this->error = 'string_wrong_size';
- }
- // ---------------------------------------------------------
- // Validate the maximum length of the attribute.
- // ---------------------------------------------------------
- elseif ( ! is_null($this->maximum) and Str::length($value) > $this->maximum)
- {
- $this->error = 'string_too_big';
- }
- // ---------------------------------------------------------
- // Validate the minimum length of the attribute.
- // ---------------------------------------------------------
- elseif ( ! is_null($this->minimum) and Str::length($value) < $this->minimum)
- {
- $this->error = 'string_too_small';
- }
- return is_null($this->error);
- }
- }
|