• Как работать с blade в laravel?

    Lyrium
    @Lyrium
    Web developer
    Blade шаблонизатор который помогает разграничить html и сделать работу с ним и вывод php данных более удобным и гибким.

    Разобраться что к чему не сложно blade прост для освоения, сейчас приведу несколько примеров с чего лучше начать:

    во первых разобраться с layout и с устройством шаблонизатора можно на примере кода который генерируется командой "php artisan make:auth" (базовая авторизация Laravel прочесть можно в офф. документации ссылка на авторизацию)
    Здесь сразу у вас будет пример с несколькими вьюхами и правильно построенным шаблоном в целом

    также можно ознакомиться с русскоязычной документацией описывающей blade довольно подробно ссылка на русский blade

    Самое главное нужно понимать что Blade основан на концепции наследования шаблонов и секциях, а разобраться с тем как что работает помогут примеры готового кода и документация

    upd: Директива @section, как следует из её названия, определяет секцию содержимого, а директива @ yield используется для отображения содержимого заданной секции. Т.е. в то место где стоит yield попадает значение секции

    схематичный пример:

    есть файл app, в дирректории layouts
    layouts/app.blade.php
    <html>
    <head>
    	<title>
    		@yield('title', 'Laravel')
    	</title>
    
    	<!-- Styles -->
    	<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
    </head>
    <body>
    	<div id="app">
    		<div class="navbar">
    			...
    		</div>
    
    		<div class="container">
    			@yield('content')
    		</div>
    	</div>
    </body>
    </html>


    второй файл описывает то что попадет в указанную секцию
    products.blade.php
    @extends('layouts.app')
    
    @section('title', 'Products')
    
    @section('content')
    	@foreach($products as $product)
    		{{ $product }}
    	@endforeach
    @endsection

    В первом случае нет закрывающего @endsection из-за того что тело секции это и есть строка 'Products', во втором случае мы указываем конец секции, потому что тело секции находится между @section и @endsection
    Ответ написан
    7 комментариев