没有前缀名称的 Laravel 路由

Posted

技术标签:

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

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

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

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

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

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

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

【问题讨论】:

查看***.com/questions/30046691/… 【参考方案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() 返回当前路由名称

以上是关于没有前缀名称的 Laravel 路由的主要内容,如果未能解决你的问题,请参考以下文章

Laravel路线中包含文件夹名称

Laravel Route::group[] 无法正常工作

Laravel 资源路由命名前缀

Laravel 5中带有前缀的路由组中的路由资源

Laravel 路由不附加任何前缀

Laravel 根路由“/”在子域的前缀路由中不起作用