php - Laravel,在控制器中处理验证错误
问题描述
所以我正在使用以下代码验证表单的输入:
$request->validate([
'title' => 'bail|required|max:255',
'body' => 'required',
]);
所以基本上,表单中有两个字段,一个标题和一个正文,它们具有上述规则。现在,如果验证失败,我想直接在控制器中捕获错误,然后再重定向到视图,以便我可以发送错误消息作为对 Post 请求的响应。最好的方法是什么?我知道错误会被推送到会话中,但这是视图要处理的,但我想在控制器本身中处理此类错误。
谢谢
解决方案
如果您查看官方文档,您会发现您可以以不同的方式处理输入验证。
在您的情况下,最好的解决方案是手动创建验证器,以便您可以在控制器内设置自己的逻辑。
如果你不想在请求上使用 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();
}
推荐阅读
- amazon-web-services - AWS SSM 运行命令:使用 Cloudformation 模板中的当前帐号
- c# - 源不可用错误(源实际可用)
- scala - scala:从第二个位置开始的每个偶数位数字的平方和
- javascript - 根据条件显示/隐藏数组项:ReactJS
- java - Android:通过 android 数据绑定将 lambda 传递给回收器适配器
- java - 如何提取和替换具有特定格式的字符串?
- java - 具有 Microsoft EWS 给定 TimeZone 的 ExchangeService 实例或 GetUserAvailabilityResults
- excel - excel检查用户输入是否在范围内
- c++ - 使用 RecordSet 读取 nText
- jquery - ASP.NET Core jQuery .ajax 帖子总是为空?