Laravel4 Validator和可空字段

时间:2014-02-17 12:13:20

标签: php mysql laravel laravel-4 nullable

我对Laravel 4和验证概念有疑问。

我有我的mysql表和我的模型Calass .. 我们可以假设我们有一个可空的字段...

如果此字段不为null,我该如何验证它? (例如,我将是一个整数值< of my maxvalue)

2 个答案:

答案 0 :(得分:1)

除非您添加' required'规则,验证将始终将字段视为可选字段。因此,如果字段为空或空字符串,则numeric|max:9000之类的规则将有效,但如果提供它,则必须是小于9000的数字。

为了防止将null或空字符串保存到数据库中(MySQL将整数字段将其转换为0),您可以为该属性设置mutator。在你的模型中:

public function setNumberAttribute($value)
{
    if ($value !== null && is_numeric($value)) {
        $this->attributes['number'] = (int) $value;
    }
}

http://laravel.com/docs/eloquent#accessors-and-mutators

答案 1 :(得分:0)

您可以在模型中创建验证

前:

class User extends Eloquent {

        protected $table = 'users';

        public $timestamps = false;

        public static function validate($input) {
                $rules = array(
                        # place-holder for validation rules
                );

                # validation code
        }

}

有关验证laravel book

的更多说明