В Laravel шаблоны Blade являются мощным инструментом для организации и отображения контента на веб-страницах. Они позволяют разным шаблонам наследовать и расширять функциональность других шаблонов. Если вы хотите скрыть часть контента из материнского шаблона, вы можете использовать директиву @section
.
Чтобы скрыть часть контента из материнского шаблона, вам нужно создать новую секцию в дочернем шаблоне, в которой будет содержаться контент, который вы хотите скрыть. Затем, в материнском шаблоне, вы можете использовать директиву @show
, чтобы определить, когда контент из дочернего шаблона будет отображаться.
Вот пример, как можно скрыть часть контента из материнского шаблона:
Материнский шаблон (parent.blade.php):
<html> <head> <title>Материнский шаблон</title> </head> <body> <header> <h1>Заголовок страницы</h1> </header> <div class="content"> @yield('content') </div> </body> </html>
Дочерний шаблон (child.blade.php):
@extends('parent') @section('content') <h2>Дополнительный контент</h2> <div class="hidden-content"> <p>Этот контент будет скрыт в материнском шаблоне</p> </div> @endsection
Теперь, если вы используете дочерний шаблон child.blade.php
, то все содержимое секции @section('content')
будет отображаться в материнском шаблоне вместо @yield('content')
. Однако, чтобы скрыть часть контента div.hidden-content
из материнского шаблона, вам нужно использовать @section
и @show
следующим образом:
@extends('parent') @section('content') <h2>Дополнительный контент</h2> <div class="hidden-content"> <p>Этот контент будет скрыт в материнском шаблоне</p> </div> @section('hidden-content') <style> .hidden-content { display: none; } </style> @show @endsection
В данном примере мы используем дополнительную секцию @section('hidden-content')
для определения стилей CSS, которые скрывают блок div.hidden-content
. Затем, используем директиву @show
, чтобы подключить эту секцию к материнскому шаблону.
Теперь, когда вы используете дочерний шаблон child.blade.php
, блок div.hidden-content
будет скрыт в материнском шаблоне, но остальной контент будет отображаться.