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. Я думаю, это сработает, я не пробовал.


Do

@section('title')
 {{ $client->name }}
@stop