在laravel中,是否可以获取调用您当前所在的控制器方法的视图的名称?
我的网站中有两个版本的表单。一个用于在站点“外部”使用(即用户未登录),另一个用于在站点“内部”使用。表单在表示方面略有不同,但它们包含所有相同的字段并调用相同的存储方法。
我的store方法中是否有一种方法可以获取调用该方法的视图的名称?我查看了文档,但没有看到明确的方法。
答案 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