【问题标题】:Laravel 4 - Get Current Route Name on Hidden Input to use for searchLaravel 4 - 在隐藏输入上获取当前路线名称以用于搜索
【发布时间】:2013-05-28 10:42:05
【问题描述】:

我的 Laravel 4 应用程序的导航栏中有一个搜索表单。当有人输入搜索并提交时,我希望仅根据他们所在网站的哪个部分执行查询。例如,如果他们在博客页面上,我希望它只返回博客文章,如果他们在用户页面上,我希望它只显示用户列表。

除非我遗漏了一些东西(当然可能是因为我是 Laravel 的新手!)我可以使用 getCurrentRoute()->getPath() 来做到这一点。但是我必须从表单中执行此操作,因为当我尝试在 Controller 中执行此操作时,它不再具有旧路由。因此,我在表单上创建了一个隐藏字段,如下所示:

{{ Form::hidden('route', '{{{Route::getCurrentRoute()->getPath()}}}') }};

但是,“getCurrentRoute()->getPath()”永远不会被正确评估。表单字段将其打印出来:

<input name="route" type="hidden" value="&lt;?php echo e(Route::getCurrentRoute()-&gt;getPath()); ?&gt;">

有没有人知道一种方法可以让它工作,或者有没有更好的方法来做到这一点,我完全错过了?同样,我不能像往常一样将它插入到控制器中,因为此时路由已发送到

// Search
Route::post('search', array('as' => 'search', 'uses' => 'SearchController@postSearch'), function(){
});

此时它总是认为路由名称是“搜索”。

【问题讨论】:

    标签: laravel laravel-4 url-routing


    【解决方案1】:

    如果您正在寻找命名路线,请使用:

    Route::currentRouteName()
    

    将为您提供的示例返回 search

    相关文档http://laravel.com/docs/routing#named-routes

    【讨论】:

      【解决方案2】:

      试试这个:

      {{ Form::hidden('route', Route::getCurrentRoute()->getPath()) }}
      

      因为它已经在 PHP 块中了..

      【讨论】:

      • 是的,几乎可以完美运行。谢谢!它带有 / 所以我的值是“/blog”,但这很好,因为我可以用 if 语句检查它!谢谢!
      猜你喜欢
      • 2015-09-14
      • 2015-07-14
      • 2016-05-08
      • 2013-02-01
      • 2013-08-20
      • 2021-10-24
      • 2015-12-04
      • 2020-04-02
      • 2018-07-05
      相关资源
      最近更新 更多