Laravel:获取调用控制器方法的视图的名称

时间:2014-06-04 14:57:59

标签: php laravel-4

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

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

我的store方法中是否有一种方法可以获取调用该方法的视图的名称?我查看了文档,但没有看到明确的方法。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

答案 1 :(得分:0)

这是您可以实现的方式。只需在控制器方法中执行此操作即可,在该方法中您要检测来自请求的先前路由名称。

        $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