ActiveRecord\Validations::validates_inclusion_or_exclusion_of PHP Method

validates_inclusion_or_exclusion_of() public method

Available options:
  • in/within: attribute should/shouldn't be a value within an array
  • message: custome error message
  • allow_blank: allow blank strings
  • allow_null: allow null strings
See also: validates_inclusion_of
See also: validates_exclusion_of
public validates_inclusion_or_exclusion_of ( string $type, $attrs )
$type string Either inclusion or exclusion
$attrs Validation definition
    public function validates_inclusion_or_exclusion_of($type, $attrs)
    {
        $configuration = array_merge(self::$DEFAULT_VALIDATION_OPTIONS, array('message' => Errors::$DEFAULT_ERROR_MESSAGES[$type], 'on' => 'save'));
        foreach ($attrs as $attr) {
            $options = array_merge($configuration, $attr);
            $attribute = $options[0];
            $var = $this->model->{$attribute};
            if (isset($options['in'])) {
                $enum = $options['in'];
            } elseif (isset($options['within'])) {
                $enum = $options['within'];
            }
            if (!is_array($enum)) {
                array($enum);
            }
            $message = str_replace('%s', $var, $options['message']);
            if ($this->is_null_with_option($var, $options) || $this->is_blank_with_option($var, $options)) {
                continue;
            }
            if ('inclusion' == $type && !in_array($var, $enum) || 'exclusion' == $type && in_array($var, $enum)) {
                $this->record->add($attribute, $message);
            }
        }
    }