在Laravel 5.1中使用包mcamara/laravel-localization我设法本地化我的网站并翻译路线。问题现在如下:如何根据当前路由通过刀片模板添加自定义类“活动”?
到目前为止,我已尝试使用HTML :: macro,但似乎包laravelcollective/html:“5.1。*”与L5.1不完全兼容(尤其是宏)。
即使我设法使用宏,我也无法使用ffffffb3 * 4
--------
fffffecc +
8464 +
8 +
--------
8338 QED
,因为路由已被翻译。我很确定这必须是一个简单的方法...
Request::is('about')
答案 0 :(得分:2)
试试这个!
<li class="@if (Request::is('/')) {{'active'}} @endif"><a href="/">Home <span class="sr-only">(current)</span></a></li>
<li class="@if (Request::is('about')) {{'active'}} @endif"><a href="{{URL::to('/about')}}">About</a></li>
<li class="@if (Request::is('contact')) {{'active'}} @endif"><a href="{{URL::to('/contact')}}">Contact</a></li>
答案 1 :(得分:1)
在@keithm和here的鼓舞人心的帮助下,我做了以下工作:
首先使用新指令扩展刀片,直接在AppServiceProvider.php中构建
Blade::directive('activeState', function($expression) {
return '<?php echo activeClass('. $expression . '); ?>';
});
然后在你的帮助文件中(如果你没有,你可以在app / Http / helpers.php中创建它)添加以下内容
function activeClass($url) {
return Request::url() == $url ? 'active' : '';
}
在刀片中直接使用以下指令:
<a href="{{ URL::route('front.portfolio.index') }}" class="nav-block @activeState(URL::route('front.portfolio.index'))">
答案 2 :(得分:0)
不确定我是否有您的问题,但这是您正在寻找的吗?
<span class="someClass @if (Request::url('/myurl') active @endif"></span>
很抱歉错过了这部分问题:)。
我没有以这种方式测试,但它应该有效:
@if (Request::url($variable or $pattern .'/restofuri')
答案 3 :(得分:0)
派对有点晚了,但我也遇到了同样的问题并用laravel帮助函数localizeURL
和本地化包帮助函数<a href="{{LaravelLocalization::localizeURL(trans('routes.my-route'))}}"
class="{{(url()->current() == LaravelLocalization::localizeURL(trans('routes.my-route'))) ? "active" : "" }}">
{{trans('navigation.my-route')}}</a>
{{1}}