Laraver | Скрыть включенный элемент на master.blade.php

Как я могу скрыть боковую панель на домашней странице (index.blade.php)? В настоящее время у меня есть что-то вроде этого в master.blade.php:

  <main class="py-5">
        <div class="row" style="margin-right:15px;">
            <div class="col-md-9 col-sm-12 col-xs-12">
                @yield('content')
            </div>
            <div class="col-md-3 col-sm-12 col-sx-12">
                @include('sidebar')
            </div>
        </div>
    </main>

Мне нужно отобразить боковую панель на всех страницах, кроме главной страницы (index.blade.php).

Спасибо

2 ответа

Решение

Предполагая, что ваша страница индекса является корнем / Вы можете проверить так:

@unless(request()->is('/'))
<div class="col-md-3 col-sm-12 col-sx-12">
     @include('sidebar')
</div>
@endunless

---- РЕДАКТИРОВАТЬ

@if(request()->is('/'))
<div class="col-md-12 col-sm-12 col-xs-12">
    @yield('content')
</div>
@else
<div class="col-md-9 col-sm-12 col-xs-12">
     @yield('content')
</div>
<div class="col-md-3 col-sm-12 col-sx-12">
     @include('sidebar')
</div>
@endif

Вы можете передать параметр из файла index.blade.php в макет, например: @extends('layouts.master', ['noSideBar' => true]), А затем в вашем master.blade.php:

@unless(isset($noSideBar))
    <div class="col-md-3 col-sm-12 col-sx-12">
        @include('sidebar')
    </div>
@endunless

Если вы также хотите, чтобы ваш другой блок имел другой класс, ваш код будет выглядеть так:

<main class="py-5">
    <div class="row" style="margin-right:15px;">
        <div class="{{ isset($noSideBar) ? 'col-md-12 : 'col-md-9' }} col-sm-12 col-xs-12">
            @yield('content')
        </div>
    @unless(isset($noSideBar))
        <div class="col-md-3 col-sm-12 col-sx-12">
            @include('sidebar')
        </div>
    @endunless
    </div>
</main>
Другие вопросы по тегам