【问题标题】:Returning HTTP code to POST form in Laravel在 Laravel 中将 HTTP 代码返回到 POST 表单
【发布时间】:2019-08-26 18:00:14
【问题描述】:

我有一个非常简单的视图,其中包含一个表单。此表单包含 2 个选择字段,其中填充了数据库中的数据。

假设第一个选择包含“Banana”、“Apple”、“Orange”。第二个包含“Burger”、“Pizza”、“Hot Dog”。

我正在提交表单 (POST) 并将组合保存在我的数据库表中。在实际保存之前,我正在检查该组合是否不存在。我不想保存“香蕉 - 汉堡”两次。

如果组合已经存在,我将返回以下内容:

session(['error' => 'This combination already exists.']);
return redirect()->back()->withInput();

这让我回到我的表单,并在弹出窗口中显示错误消息。

如何返回正确的 HTTP 代码(在本例中为 409)?

【问题讨论】:

  • 我认为你需要 ajax 表单提交

标签: php laravel forms http


【解决方案1】:

您可以为此更改您的 laravel 验证。在下面的示例中替换您的表名和字段名。

$data = $request->all();
$request->validate([
'fruits' => [
    'required',
    Rule::exists('fruits')->where(function ($query) {
        $query->where('fruit_name', $data['fruit_name']);
    }),
],
'foods' => [
    'required',
    Rule::exists('foods')->where(function ($query) {
        $query->where('food_name', $data['food_name']);
    })
]
]);

希望这会对你有所帮助。

【讨论】:

  • 您还需要使用old 方法才能在表单上显示旧值。
猜你喜欢
  • 2012-08-14
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 2021-03-30
相关资源
最近更新 更多