Laravel中注销时的验证错误

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?

Screen shot of error message

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')
);