Laravel中注销时的验证错误

时间:2014-05-22 12:59:46

标签: php authentication laravel

升级到最新版本的Laravel后,我在登录后尝试注销时收到错误消息。

我的验证看起来像这样(我把它放在用户模型中):

public $errors;

protected static $rules = array(
    'name'       => 'required',
    'email'      => 'required,email',
    'company_id' => 'required,integer'
);

public static function boot()
{
    parent::boot();

    static::saved(function()
    {
        // Cache::forget('query.user.all');
    });

    static::saving(function($model)
    {
        return $model->validate();
    });
}

public function validate()
{
    $v = Validator::make($this->getAttributes(), static::$rules);

    if ($v->fails())
    {
        $this->errors = $v->messages();
        return FALSE;
    }

    return TRUE;
}

我认为这是因为在注销时表单输入不存在,因此验证失败。有没有办法将保存功能拆分为一个用于登录,另一个用于注销?

Screen shot of error message

1 个答案:

答案 0 :(得分:2)

错误说validateRequired,email不存在。

这是因为您的验证规则看起来不正确。您应该使用|之类的管道将它们溢出,或者将它们作为数组的单独元素放置。

更改

protected static $rules = array(
    'name'       => 'required',
    'email'      => 'required,email',
    'company_id' => 'required,integer'
);

protected static $rules = array(
    'name'       => 'required',
    'email'      => 'required|email',
    'company_id' => 'required|integer'
);

protected static $rules = array(
    'name'       => 'required',
    'email'      => array('required', 'email'),
    'company_id' => array('required', 'integer')
);