升级到最新版本的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;
}
我认为这是因为在注销时表单输入不存在,因此验证失败。有没有办法将保存功能拆分为一个用于登录,另一个用于注销?
答案 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')
);