Проблема @yield и @section при загрузке нескольких разделов в одном макете - PullRequest
0 голосов
/ 21 июня 2020

Я новичок в laravel и изучаю систему лезвий. Я хочу иметь страницу индекса с несколькими разделами, которые определены в разных файлах.

В этом случае у меня есть index.blade. php, и я хочу иметь два раздела, один из которых называется " panel », а другой раздел называется« tasks »в моем index.blade. php.

Разделы определены и закодированы в panel.blade. php и create.panel. php. Кроме того, все три файла находятся в каталоге "view / todos /". Код, который я пишу, представляет собой следующий код:

index.blade. php:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    @yield('panel')
    @yield('tasks')
</body>
</html>

For panel.blade. php У меня:

@extends('todos.index')

@section('panel')
<!--- Panel Content --->
@endsection

А для create.blade. php У меня примерно так:

@extends('todos.index')

@section('tasks')
<!--- Task Content --->
@endsection

И, наконец, в сети. php, у меня:

Route::get('/todos',function(){
    return view('todos.index');
});

Всякий раз, когда я пытаюсь получить доступ к адресу «/ todos», он просто показывает мне пустую страницу.

Я пробовал несколько способов, изменив вид («todos.index») на просмотр («todos.panel») или просмотреть ("todos.create"), но он просто показывает мне один из разделов, а не другой.

1 Ответ

0 голосов
/ 21 июня 2020

Не знаю, хорошо ли я вас понимаю, лог c. Но, похоже, вы неправильно поняли, как работает @yield.

Вместо этого вы можете использовать @include, как в этой части документации: https://laravel.com/docs/7.x/blade#including -subviews

Я был думая о чем-то, используя подчасть Aliasing Includes , прокрутите немного вниз от основной части, которую я связал чуть выше.

Скажите, помогло ли это вам

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