@lemonlimelike

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

Только начал изучать laravel. Глупый вопрос все таки, но для меня это не понятно. Вообщем, как работаю шаблонизатор blade. Первое что интересует, это:
Есть файл welcome.blade.php, это типа как главная страница(в routes так указанно). Я создал папку layout, в который есть файл header.blade.php, в котором вот такой код 5a42e646a4cf2875915919.jpeg
А вот файл welcome.blade.php, т.е. главная стр 5a42e669841d6400485931.jpeg

Правильно ли я все сделал. Файлы, которые будут в layout, для чего нужны?
Если я правильно все понимаю, в файле welcome просто происходит вывод данных из бд, или что то вроде такого, а подключенных файлах, т.е. как у меня файл header, будет содержать стили?
Раз спрашиваю, то еще один вопрос, чем отличаются директивы @section и директива @yield ? И почему в одних случаях есть @endsectoin а в других ничего
  • Вопрос задан
  • 6457 просмотров
Решения вопроса 1
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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы