Ответ 1
Вы смешиваете два разных подхода к компоновке Laravel. Таким образом вы визуализируете представление макета, включаете домашний вид и пытаетесь снова включить макет.
Мое личное предпочтение - подход к контроллеру.
Макеты контроллеров
Контроллер и макеты могут оставаться теми же.
Примечание. В качестве ярлыка вы можете вложить содержимое вместо View:: make, которое автоматически отображает его, когда вы эхо-эхо в макете.
В home.blade.php удалите функцию @layout.
Изменить (пример):
Контроллеры/home.php
<?php
class Home_Controller extends Base_Controller {
public $layout = 'layouts.default';
public function action_index()
{
$this->layout->title = 'title';
$this->layout->nest('content', 'home', array(
'data' => $some_data
));
}
}
Виды/макеты/default.blade.php
<html>
<title>{{ $title }}</title>
<body>
{{ $content }}
</body>
</html>
вид/home.blade.php
Частицы включены в содержание.
@include('partials.header')
{{ $data }}
@include('partials.footer')
Планы Blade
Если вам нужен этот подход, у вас есть несколько проблем. Во-первых, вы включаете новый контент после макета. Не уверен, что преднамеренно, но сама функция @layout - это просто просто @include, ограниченный тем, что находится в самом начале представления. Поэтому, если ваш макет - закрытый html, любой из них после этого будет добавлен после вашего макета html.
Ваше содержание должно использовать разделы здесь с функцией @section и @yield в вашем макете. Верхний и нижний колонтитулы могут быть включены в макет с помощью @include или если вы хотите определить его в представлении контента, а затем поместите их в поле @section, как показано ниже. Если вы определите его таким образом, если раздел не существует, ничего не получится.
Контроллеры/home.php
<?php
class Home_Controller extends Base_Controller {
public function action_index()
{
return View::make('home')->with('title', 'title');
}
}
Виды/макеты/default.blade.php
<html>
<title>{{$title}}</title>
<body>
@yield('header')
@yield('content')
@yield('footer')
</body>
</html>
мнения/home.blade.php
@layout('layouts.default')
@section('header')
header here or @include it
@endsection
@section('footer')
footer
@endsection
@section('content')
content
@endsection