【问题标题】:Getting redirect loop when pass custom Request type into action Laravel 5将自定义请求类型传递给操作 Laravel 5 时获取重定向循环
【发布时间】:2015-07-23 18:38:32
【问题描述】:

我有控制器动作,我想渲染表单并处理它提交,所以我要做的就是:

public function add(PostFormRequest $request)
{
    if (Input::get('title')) {
        $post = new Post(Input::all());
        if ($post->save()) {
            return redirect('posts');
        }
    }

    return view('add_post');
}

但是我得到了重定向循环,当我只使用 public function add() 一切正常时,我做错了什么?

【问题讨论】:

  • 我不认为它在此代码中重定向,您可以通过在 return redirect('posts'); 之前设置 dd('here'); 来进行测试。 PostFormRequest 中有什么?
  • @Robert,看起来它没有进入动作,var_dump(1);die;,在动作开始括号不起作用并获得重定向循环之后...
  • 然后它在 PostFormRequest 中被重定向。你能发布那个代码吗?

标签: php forms laravel request


【解决方案1】:

我猜您的表单请求可能包含一些验证规则。这些显然会在 GET 请求上失败,它会重定向、失败、重定向等等。表单请求总是被注入和验证。不仅仅是 POST 请求。最好且通常更干净的解决方案是将其拆分为两种不同的方法。

【讨论】:

  • 是的,我明白了。但我不喜欢这种方法,因为在我看来,它不会让我们的控制器更加漂亮,而不是单个完全动作我们得到两个,它只是用于创建,两个用于更新,我们仍然记得路由,它将是四种路线,所以我们得到大表而不是避免 FSUC。也许像这样的人,也许有一天我也会喜欢它。但现在我认为 Laravel 需要使用模型进行验证。也许有人说现在不灵活。哦。每天我都越来越确信编程没有明确的界限,我们需要在这两者之间保持平衡
  • 您不必使用表单请求。你可以手动或在模型中使用 Laravel 验证器。还有多个用于模型验证的包。
猜你喜欢
  • 2015-08-04
  • 2023-03-25
  • 2020-07-17
  • 1970-01-01
  • 2017-08-26
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
相关资源
最近更新 更多