【问题标题】:Laravel: Get the name of the view that called the controller methodLaravel:获取调用控制器方法的视图的名称
【发布时间】:2014-06-04 14:57:59
【问题描述】:

在 laravel 中是否可以获取调用您当前所在的控制器方法的视图的名称?

我的网站中有两个版本的表单。一个用于在站点“外部”使用(即用户未登录),另一个用于在站点“内部”使用。这些表单在表示上略有不同,但它们包含所有相同的字段并调用相同的存储方法。

有没有办法从我的 store 方法中获取调用该方法的视图的名称?我浏览了文档,但没有看到明确的方法。

【问题讨论】:

    标签: php laravel-4


    【解决方案1】:

    如果它是一个表单,为什么不将视图名称存储在隐藏的输入中,并将其与表单数据的其余部分一起发送。

    Form::hidden('view', 'model.index')
    

    我认为没有办法获取当前视图名称,但是当您首先设置要使用的视图时,您可以将视图名称从原始控制器传递给视图:

    public function create()
      {
         $myView = 'model.index';
         Return View::make($myView)->with(compact('myView'));
      }
    

    然后如上所述,包含视图名称的$myView 变量可用于插入到表单中。

    在接收控制器(您的store 方法)中,只需使用Input::get('view') 从表单数据中检索它。

    【讨论】:

      【解决方案2】:

      这就是您实现这一目标的方法。只需在控制器方法中执行此操作,您就可以在该方法中检测发出请求的前一个路由名称。

              $url = url()->previous();
      
              $route = app('router')->getRoutes($url)->match(app('request')->create($url))->getName();
              
              if($route == 'route name here') {
                  return redirect()->back(); //example
              }
      
              return view('users.index'); //example
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多