Laravel Blade @ выход и выход
в Laravel 5 у меня есть мастер-шаблон, содержащий:
<title>@yield('title') | Site Name</title>
и на мой взгляд у меня есть:
@extends('master')
@section('title', $client->name)
...
проблема в том, что @yield не избегает передаваемых ему данных. До сих пор единственное решение, которое я нашел, - это вручную избежать данных следующим образом:
@section('title', e($client->name))
Это лучший метод? Это означает, что я должен вручную экранировать данные в каждом представлении, которое я использую переменную. Я не вижу способа избежать директивы @yield из шаблона master-using {{ }}
или e()
вокруг @yield не работает.
2 ответов
почему бы не сделать следующее:
@section('title') {{$client->name}} @endsection
это, по крайней мере, согласуется с экранированием данных в остальных ваших представлениях. То, как у вас это есть, вы можете очень вероятно пропустить e()
. С вышеизложенным вы сможете сразу увидеть, когда вы визуализируете представление, если вы не убежали.
обновление
как насчет использования raw PHP:
<title> <?php echo e($__env->yieldContent('title')); ?> | Site Name</title>
это то, что Blade template engine заменяет @yield
С, но я добавил побег помощник.
Это должно означать, что вам не нужно бежать @section
. Я думаю, это сработает, я не пробовал.