【问题标题】:Laravel how to get current RouteLaravel如何获取当前路线
【发布时间】:2016-08-03 09:34:14
【问题描述】:

我的 Routes.php 中有以下内容:

Route::get('cat/{cat}', ['as' => 'cat', 'uses' => 'CatController@get']);

如果从 Controller 函数返回的任何视图与当前页面匹配,我想检查我的 sidebar.blade.php 文件。

{cat} 可以是 a、b、c、d、f 或 e。 侧边栏由 6 张图片组成。 如果例如路由是cat/a,则应该更改该路由的图像。

人们建议 Route::current()->getName() 但这只会返回 cat 而不是 /a、/b、/c 等。还有一些其他函数只返回 cat/,之后什么都没有

【问题讨论】:

  • 你试过Route::currentRouteName()吗?
  • @AlexeyMezenin 当前路线的名称将是cat

标签: php laravel laravel-routing


【解决方案1】:

在您的路线/web.php 中:

Route::get('cat/{cat}', ['as' => 'cat', 'uses' => 'CatController@get'])->name('name-your-route');

在 view.blade.php 中:

@if(request()->routeIS('name-your-route'))

@endif

【讨论】:

    【解决方案2】:

    您可以使用Request::is('cat/a')

    【讨论】:

    • 谢谢,它工作正常,但我不得不将路由更改为请求。
    • @PoTTii 我的错,Request 是!对此感到抱歉。
    【解决方案3】:

    您可以通过以下方式获得{cat} 部分:

    $cat = Request::route()->getParameter('cat');
    

    路线如下:

    $route = Route::currentRouteName();
    

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 2015-10-08
      • 2015-07-14
      • 2020-08-04
      • 2016-04-08
      • 2019-07-15
      • 2020-04-18
      • 1970-01-01
      • 2014-02-25
      相关资源
      最近更新 更多