猿问

Laravel,在控制器中处理验证错误

所以我正在使用以下代码验证表单的输入:


$request->validate([

    'title' => 'bail|required|max:255',

    'body' => 'required',

]);

所以基本上,表单中有两个字段,一个标题和一个正文,它们具有上述规则。现在,如果验证失败,我想直接在控制器中捕获错误,然后再重定向到视图,以便我可以发送错误消息作为对 Post 请求的响应。最好的方法是什么?我知道错误会被推送到会话中,但这是视图要处理的,但我想在控制器本身中处理此类错误。


谢谢


倚天杖
浏览 141回答 1
1回答

HUH函数

如果您查看官方文档,您会发现您可以以不同的方式处理输入验证。在您的情况下,最好的解决方案是手动创建验证器,以便您可以在控制器内设置自己的逻辑。如果你不想在请求上使用 validate 方法,你可以使用 Validator 门面手动创建一个验证器实例。这里有一个小例子:public function store(Request $request){    $validator = Validator::make($request->all(), [        'title' => 'bail|required|max:255',        'body' => 'required',    ]);    // Check validation failure    if ($validator->fails()) {       // [...]    }    // Check validation success    if ($validator->passes()) {       // [...]    }    // Retrieve errors message bag    $errors = $validator->errors();}
随时随地看视频慕课网APP
我要回答