正则表达式 – 如何检查Laravel Blade中的当前路线是否与模式匹配?

我正在检查我的刀片模板中的路由,使用以下代码将活动类添加到菜单中的特定li:
<ul>
    <li class="{{ Request::is('*/sobre') || Request::is('*') ? "active" : "" }}">
        <a href="{{ Route::getCurrentRoute()->parameters()['domain'] . "/sobre" }}">Sobre o salão</a>
    </li>
    <li class="{{ Request::is('*/servicos') ? "active" : "" }}">
        <a href="{{ Route::getCurrentRoute()->parameters()['domain'] . "/servicos" }}">Serviços</a>
    </li>
    <li class="{{ Request::is('*/avaliacoes') ? "active" : "" }}">
        <a href="{{ Route::getCurrentRoute()->parameters()['domain'] . "/avaliacoes" }}">Avaliações</a>
    </li>
    <li class="{{ Request::is('*/galeria') ? "active" : "" }}">
        <a href="{{ Route::getCurrentRoute()->parameters()['domain'] . "/galeria" }}">Fotos</a>
    </li>
</ul>

这些是路线:

Route::group(['prefix' => '{domain}','middleware'=>'salao'],function () {
    Route::get('/','Frontend\FrontendSalaoController@sobre');
    Route::get('sobre','Frontend\FrontendSalaoController@sobre');
    Route::get('servicos','Frontend\FrontendSalaoController@servicos');
    Route::get('avaliacoes','Frontend\FrontendSalaoController@avaliacoes');
    Route::get('galeria','Frontend\FrontendSalaoController@galeria');
});

当我访问路线http:// website / x或路线http:// website / x / sobre时,活动类正确定位.但是,如果我访问http:// website / x / servicos路由,该类将添加到第一个li和servicos li中.

我怎么处理这个?

Request :: is(‘*’)实际上匹配所有内容,因此第一项将始终具有活动类.相反,你应该检查’/’:
<li class="{{ Request::is('*/sobre') || Request::is('/') ? "active" : "" }}">

is方法甚至支持多个参数,其中只有一个必须匹配,因此您可以将其缩短为:

<li class="{{ Request::is('*/sobre','/') ? "active" : "" }}">

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...