【问题标题】:Laravel route without prefix name没有前缀名称的 Laravel 路由
【发布时间】:2018-11-30 13:49:10
【问题描述】:

我正在尝试使用 Laravel 登陆页面路由。例如 Laravel 默认带你进入欢迎页面,斜杠后面没有 url 文本。

Route::get('/', function () {
    return view('welcome');
});

在我的欢迎页面中,我使用以下条件根据路由名称应用样式。

{!! Route::is('/')? 'class="index"':'' !!}

但是此代码不起作用。如何正确查看欢迎页面的路径?

编辑:使用“请求”而不是“路由”使其工作。但是为了保持一致性,我想知道是否也可以使用“Route”来完成。

【问题讨论】:

标签: php laravel


【解决方案1】:

为您的路线命名并使用此名称来调整您的样式

Route::get('/', function () {
    return view('welcome');
})->name('home');

在你的刀片中

{!! (Route::currentRouteName() == 'home')? 'class="index"':'' !!}

【讨论】:

  • 谢谢!正是我想要的!
【解决方案2】:

试试这个:

<li class="@if (request()->is('/')) index @endif"></li>
    // ...
</li>

你也可以使用通配符:

<li class="@if (request()->is('/some-url/*')) active @endif">
    // ...
</li>

【讨论】:

    【解决方案3】:

    试试这个

    @if(Request::is('/'))
      class="index"
    @endif
    

    或者更简单的

    if(Request::is('/')) {
       class="index"
    }
    

    【讨论】:

    • 不会有任何区别
    • 是的,两者在输出方面相似,但第一个是刀片模板代码,第二个是 PHP 代码,
    【解决方案4】:

    试试这个:

    <li {!! Request::is('/') ? 'class=index' : '' !!}>...</li>
    

    【讨论】:

      【解决方案5】:
      Route::get('/', function () {
          return view('welcome');
      })->name('home');
      

      在刀片中

      class = "default class @if(\Request::route()->getName() == 'home')your_class @endif"
      

      【讨论】:

      • \Request::route()->getName() 返回当前路由名称
      猜你喜欢
      • 2014-09-29
      • 2020-06-24
      • 2019-06-30
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      相关资源
      最近更新 更多