laravel - 验证失败后返回重定向()不起作用
问题描述
我有一个表单,用户可以在其中编辑分支的信息,一旦用户提交该表单,update() 方法就会检查提交数据的有效性,例如每个订阅者的描述必须是唯一的。虽然验证有效,但如果验证失败,它不会重定向到我想要的确切 url/页面。它保持相同的编辑形式。
这是我的 update() 方法的代码:
public function update(Request $request, $id)
{
$description = $request->input('description');
$message = $request->input('message');
$subscriber_id = auth()->user()->subscriber_id;
$messages = [
'description.unique' => 'Branch already exists!',
];
$this->validate($request, [
'description' => Rule::unique('branches')->where(function ($query) use($subscriber_id) {
return $query->where('subscriber_id', $subscriber_id);
})
], $messages);
Branch::where('id', $id)->update([
'description' => $description,
'message' => $message,
]);
return redirect('branches')->with('success', 'Branch info successfully updated!');
}
注意:编辑表单的 url 是/branch/edit/{id}
我提交后要重定向的页面/branches
。
我的验证错了吗?我错过了什么?
谢谢!:)
解决方案
根据laravel 文档,您可以使用 Validator 门面重定向到不同的路由
public function update(Request $request, $id)
{
$description = $request->input('description');
$message = $request->input('message');
$subscriber_id = auth()->user()->subscriber_id;
$messages = [
'description.unique' => 'Branch already exists!',
];
$validator = Validator::make($request->all(), [
'description' => Rule::unique('branches')->where(function ($query) use($subscriber_id) {
return $query->where('subscriber_id', $subscriber_id);
})
],
$messages);
if ($validator->fails()) {
return redirect('/branches')
->withErrors($validator)
->withInput();
}
Branch::where('id', $id)->update([
'description' => $description,
'message' => $message,
]);
return redirect('branches')->with('success', 'Branch info successfully updated!');
}
确保在控制器文件的开头使用 Validator 外观use Validator;
推荐阅读
- ubuntu - snmpwalk:-c:未知对象标识符(未找到子 ID:(顶部)-> -c)
- java - 通过java流收集到hashMap的多个组
- java - 为什么 onClick() 函数需要参数而不是参数
- sql - 在 SAS Data Integration Studio 中将两个或多个字段的数据合并为一个字段
- python - 就数据而言,我的神经网络模型如何找到(从我的数据集中)最接近用户输入列表的列表?
- android-studio - 启用虚拟化后 Android Studio 无法启动
- sql-server - 在复杂字段上连接两个表
- powershell - 使用 PowerShell 使用 multipart/form-data 将文件上传到 API 端点
- c++ - 如何绘制在 C++ 中使用 gsl_multifit_linear 函数找到的最佳拟合曲线?
- string - 什么是一种惯用的 Scala 方式来连接字符串并首先删除特定的重复元素