After upgrading to latest version of Laravel, I get an error message when I try to log out after being logged in.
My validation looks like this (I've put this in the User model):
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;
}
I think it's because the form input doesn't exist when logging out, so the validation fails. Is there a way to split the save function into one for logging in, and one for logging out?
The error says validateRequired,email
does not exist.
Thats because your validation rules dont look to be correct. You should spilt them with piping like |
or you can put them as separate elements of an array.
Change
protected static $rules = array(
'name' => 'required',
'email' => 'required,email',
'company_id' => 'required,integer'
);
to
protected static $rules = array(
'name' => 'required',
'email' => 'required|email',
'company_id' => 'required|integer'
);
or
protected static $rules = array(
'name' => 'required',
'email' => array('required', 'email'),
'company_id' => array('required', 'integer')
);