#php #laravel #laravel-blade
#php #laravel #laravel-blade
Вопрос:
У меня есть yield из laravel, как я могу получить заголовок страницы
<title>CDO | FDIS | @yield ('title')</title>
как этот
<?php $test = @yield ('title'); ?>
Так что я могу использовать $test
для другой функции
Комментарии:
1. Вы не можете. Чего вы пытаетесь достичь? Может быть, есть лучший способ для вашего варианта использования.
2. Это похоже на проблему XY . Может быть, сделайте шаг назад и расскажите нам, какую проблему пытается решить этот код.
3. Мне нужно создать список динамического контроля доступа для моих пользователей
Ответ №1:
Используйте app()->view:
Вы можете использовать app
экземпляр для извлечения значения yield, которое определяется разделом.
Например:
// Assuming you have the following in your view: @section('title', 'Some Title')
$title = app()->view->getSections()['title']; // Some Title
app()->view->getSections()
Возвращает ассоциативный массив всех разделов, поэтому, чтобы получить конкретный раздел, укажите конкретный индекс из массива.
Из представления вы можете получить доступ к приложению, используя глобальную $app
переменную, т.е:
$app->view or $app['view'].
Ответ №2:
Сначала определите раздел
@section('test')
Hello World
@endsection
Затем
<?php //@php
$gotYieldValue = e($__env->yieldContent('test'));
echo $gotYieldValue; //This will print "Hello World"
?> //@endphp
Ответ №3:
Когда вы открываете тег php: <?php
вы начинаете писать фактический PHP и, следовательно, блейд-каталоги (например, @yield
не работает).
Если вам нужно включить результат @yield
несколько раз, вы можете просто вызвать его несколько раз:
<title>@yield('title')</title>
...
<h1>@yield('title')</h1>
Ответ №4:
сначала вы должны расширить родительский блейд, а затем добавить
@section('title')
// content here
@endsection
Ответ №5:
попробуйте следующий код
В viewslayoutsapp.blade.php
<title>@yield('title')</title>
В блейд-файле
@section('title') Admin Management @stop