【问题标题】:Laravel 5.4: Redirect::to not workingLaravel 5.4:重定向::到不工作
【发布时间】:2017-11-08 17:17:16
【问题描述】:

如果某个条件不成立,我想将用户重定向到另一个页面。

这是我的第一个/索引视图:

    <html lang="en">
      <head>
      </head>

      <body>


        <?php
        if(5>4) {
        return Redirect::to('controllername@methodname')->with('status','Condition not true!');
        } else {
        ?>
    <p>It is Working</p>

<?php } ?>

    </body>
    </html>

如果我将条件更改为 (5

【问题讨论】:

  • 你应该在控制器中验证,而不是在视图中。那个条件是真的。当然它会一直执行。
  • 开始 html 页面语法后,您无法重定向。在 laravel 中,所有重定向都应该在控制器中
  • 我想在视图中写条件而不是在控制器和路由中。
  • 您必须将重定向放在您的视图中的可能原因是什么?

标签: php laravel redirect laravel-5.3


【解决方案1】:

您不应该在模板中重定向。它必须在控制器中。

【讨论】:

    【解决方案2】:

    在显示内容之前,您的重定向必须位于某个位置。您可以在docs 中阅读此内容,基于 phps header

    【讨论】:

    • 这也是一个解决方案,但现在我更新了我的“答案”@MateiMihai
    【解决方案3】:

    我可能会这样:

    正如其他人指出的那样,我首先将您的 if 语句移至您的控制器。

    假设您从HomeController@index 渲染当前视图

    我愿意,HomeController

    public function index()
    {
       if(5>4){
          return redirect()->action('controllername@methodname')->with('status','Condition not true!');
       }else{
          return view('index');
       }
    }
    

    这将从视图中删除您的 PHP 代码,并充分利用 Laravel 路由和控制器功能。

    【讨论】:

      猜你喜欢
      • 2018-07-30
      • 2017-10-25
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多