Шаблонизатор Blade в Laravel

Шаблонизатор "Blade" в Laravel позволяет выводить передаваемые переменные в любое место кода на странице. Для этого используются двойные фигурные скобки:
<!DOCTYPE html>
<html>
   <head>
      <title>{{ $title }}</title>
   </head>
   <body>
      {{ $var1 }}
      <div>{{ $var2 }}</div>
      <input type="text" value="{{ $var3 }}">
   </body>
</html>
Но вывод значений переменных - это не единственная его функция. В фигурных скобках можно заключить буквально любой PHP код и функцию. К примеру:
Дата: {{ date('d.m.Y') }}
Результат выполнения этого кода будет выглядеть так:
Дата: 12.02.2021

Работа с массивами

Вспомним как передаются значения в представление из действия. Попробуем передать массив:
<?php 
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;

class MouseController extends Controller{
   public function show() {
      $params = array(
         'arStr' => array('Тише, мыши, кот на крыше.', 'А котята ещё выше!'),
         'arInt' => array(1, 2),
      );
      return view('mouse', $params);
   }
}
?>
Выводить значения массива можно по ключам, индексам (если ассоциативный). Точно так же, как это делается в простом PHP коде (но без слова "echo"):
<p>{{ $arStr[0] }}</p>
<p>{{ $arStr[1] }}</p>
<input type="text" value="{{ $arInt[0] + $arInt[1] }}">
<div>Всего {{ count($arStr) }} элемента в массиве</div>
В результате выполнения такого кода будут распечатаны две строчки стихотворения и в текстовом поле появится сумма первых двух элементов массива. В последнем контейнере можно будет увидеть результат подсчёта количества элементов в массиве "$arStr":
<div>Тише, мыши, кот на крыше.</div>
<div>А котята ещё выше!</div>
<input type="text" value="3">
<div>Всего 2 элемента в массиве</div>

Тернарный оператор

Шаблонизатор Blade имеет распознавать тернарный оператор. Причём можно указать в особой форме, которую он может скомпилировать в привычное php выражение. Продемонстируем это:
<p>{{ isset($arStr[0]) ? $arStr[0] : 'Нет!' }}</p>
<p>{{ $arStr[0] or 'Нет!' }}</p>
Эти две строки кода делают одно и то же: проверяют существование элемента массива $arStr под индексом ноль и выводят его. Если такого элемента нет, то будет выведено слово "Нет!". Для этого в первой строке используется привычная PHP конструкция тернарного оператора со знаком вопроса и двоеточием. А во втором используется только слово "or". Но результат получается одинаковый.

Экранирование переменных

В шаблонизаторе Blade выводимые значения через двойные скобки {{ ... }} автоматически экранируются с помощью PHP функции htmlentities. Это делается специально, чтобы избежать XSS атак из-за ошибок разработки. Но иногда такое экранирование мешает. Его можно отключить с помощью замены двойных скобок вывода на такую конструкицю:
{!! $val !!}
Используйте это только в тех случаях, когда точно уверены, что выводимые значение не навредит проекту или пользователю.

Комментарии

Blade позволяет оставлять комментарии в коде. Делается это с помощью указани двойного тире (минуса) внутри фигурных скобок:
{{-- $val --}}
Эти комментарии похожи на комментарии PHP: закомментированные данные не будут видны в конечном HTML.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб