我有用于检查用户权限的示例函数:is_admin()、is_university()
和 is_student()
。函数的返回值是 bool 值。我有简单的验证方法:
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());
}
现在我无法通过在此处检查用户权限来发送消息:
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);
}
在我的代码中,如果发件人是学生,则学生无法向学生和管理员发送消息。如何通过检查发件人和收件人的权限来返回验证消息?谢谢大家的回答!
最佳答案
你说过你想重定向回来。所以,而不是:
return false;
重定向用户:
return back()->with('error', 'Your error message');
关于php - Laravel:如何根据用户权限返回验证消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358324/