Передайте html во второй аргумент @section - PullRequest
0 голосов
/ 16 мая 2019

У меня есть master.blade.php, который содержит @yield('page_tagline')

Я хочу использовать его следующим образом: @section('page_tagline', __('pages.home.tagline'))

Это будет работать, если перевод не содержит HTML,но это так.

Так, как я могу использовать это без лезвия?

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Один из способов обойти это - использовать класс HtmlString:

@section('page_tagline', new \Illuminate\Support\HtmlString( __('pages.home.tagline')))

Затем можно сделать еще один шаг и создать macro для класса Str или глобальную вспомогательную функцию .


Пример макроса

В вас AppServiceProvider (или любом другом поставщике услуг) добавьте следующее к методу boot:

Str::macro('html', function ($string) {
    return new HtmlString($string);
});

Не забудьте добавить следующие use операторы в класс:

use Illuminate\Support\HtmlString;
use Illuminate\Support\Str;

Тогда вы @section будете выглядеть примерно так:

@section('content', Str::html( __('pages.home.tagline')))
0 голосов
/ 16 мая 2019

Вы должны использовать

@section('page_tagline')
    {!! __('pages.home.tagline') !!}
@endsection

Таким образом, вы можете поместить HTML в слоган

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...