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>