Laravel:我如何通过用户权限返回验证消息?

时间:2018-01-20 16:18:13

标签: php laravel

我有检查用户权限的示例函数:is_admin(), is_university()is_student()。函数的返回值是布尔值。我有简单的验证方法:

protected function validator(array $data)
{        
    return Validator::make($data, [

        "$this->recipient" => [
            'sometimes',
            'required',
            'email',
            'exists:users,email',
            Rule::notIn([auth()->user()->email])
        ],

        "$this->subject" => 'sometimes|required|min:10',

        "$this->message" => 'sometimes|required|min:50',

    ], $this->validator_messages());
}

现在我无法通过check user权限发送消息:

public function send(Request $request)
{
    $recipient = $request->recipient;

    if(User::is_student() == true AND User::is_student($recipient) == true OR User::is_student() == true AND User::is_admin($recipient) == true){
        return false; // Or here I can redirect to back.
    }

    $this->validator($request->all())->validate();
    $this->create($request->all());
    return redirect($this->redirectToAfterSendMessage);
}

在我的代码中,如果发件人是学生,那么学生就无法向学生和管理员发送消息。如何通过检查权限发件人和收件人返回验证邮件?感谢大家的回答!

1 个答案:

答案 0 :(得分:2)

你说你想重定向回来。所以,而不是:

return false;

重定向用户:

return back()->with('error', 'Your error message');