我在我的Laravel 4应用程序的导航栏中有一个搜索表单。当有人输入搜索并提交时,我希望查询仅基于他们所在站点的部分执行。例如,如果他们在博客页面上,我只想返回博客文章,如果他们在用户页面上,我只想显示用户列表。
除非我漏掉了什么(因为我是Laravel的新手!),否则我可以使用getCurrentRoute()->getPath()来实现此目的。但是我必须从表单中执行此操作,因为当我尝试在Controller中执行此操作时,它不再具有旧路由。因此,我在我的表单上创建了一个隐藏字段,如下所示:
除非我漏掉了什么(因为我是Laravel的新手!),否则我可以使用getCurrentRoute()->getPath()来实现此目的。但是我必须从表单中执行此操作,因为当我尝试在Controller中执行此操作时,它不再具有旧路由。因此,我在我的表单上创建了一个隐藏字段,如下所示:
{{ Form::hidden('route', '{{{Route::getCurrentRoute()->getPath()}}}') }};
然而,"getCurrentRoute()->getPath()" 从未得到正确的评估。表单字段会直接输出它:
<input name="route" type="hidden" value="<?php echo e(Route::getCurrentRoute()->getPath()); ?>">
有没有人知道如何让这个工作,或者有没有更好的方法可以做到这一点,而我完全没有想到?再说一遍,我不能像通常那样将它插入控制器中,因为此时路由已经被发送到
// Search
Route::post('search', array('as' => 'search', 'uses' => 'SearchController@postSearch'), function(){
});
在这一点上,它总是认为路由名为“search”。