Remove @include depending on the route

2019-03-03 02:20发布

问题:

I have a menu partial, that includes a input search bar. But i don't want the search bar to be visibel on all pages, only for two specific uri´s. Is there a way to remove that include in blade?

Currently it looks like this:

<a href="{{ route('all') }}">all</a>
<a href="{{ route('nes') }}">nes</a>
<a href="{{ route('snes') }}">snes</a>
@include('partials._search')

I was thinking something like

<a href="{{ route('all') }}">all</a>
<a href="{{ route('nes') }}">nes</a>
<a href="{{ route('snes') }}">snes</a>
@if($url)
    @include('partials._search')
@endif

回答1:

Use is() method:

@if (request()->is($url))
    @include('partials._search')
@endif

Or if you know route name:

@if (request()->route()->getName() === $routeName)
    @include('partials._search')
@endif


回答2:

To retrieve URL from the blade template, use {{ Request::url() }}. This will output something like http://example.dev/articles

To retrieve path, use {{ Request::path() }} Using the above example, this will output articles.