Лопастной двигатель в Laravel-yield не работает
Я неоднократно пытался сделать простой шаблон лезвия работать. Это код:
маршруты.в PHP
<?php
Route::get('/', function()
{
return View::make('hello');
});
BaseController.в PHP
<?php
class BaseController extends Controller {
/**
* Setup the layout used by the controller.
*
* @return void
*/
protected function setupLayout()
{
if ( ! is_null($this->layout))
{
$this->layout = View::make($this->layout);
}
}
}
Здравствуйте.лезвие.в PHP
<!DOCTYPE html>
<html>
<head>
<title>swag</title>
</head>
<body>
hello
@yield('content')
</body>
</html>
содержание.лезвие.в PHP
@extends('hello')
@section('content')
<p>content check</p>
@stop
когда я запускаю этот код в браузере, все, что есть, это просто привет текст, который я написал в привет.лезвие.php, однако yield ('content') ничего не отображает и Не могу понять почему. Я был бы признателен за любую помощь, спасибо
3 ответов
вы создали неправильное представление. Родительское представление hello
, он не знает о content
. Вот почему вы написали @extends('hello')
, таким образом, когда вы создаете свой content
view, он будет знать, что он должен расширять материал из hello
.
Route::get('/', function()
{
return View::make('content');
});
для всех тех, кто борется с этим, убедитесь, что ваш php-файл шаблона-это имя с расширением blade в нем, например: mytemplate.лезвие.в PHP, Если вы сделаете ошибку, оставляя .расширение лезвия, вы шаблон не будет корректно обработан.
вы должны использовать
@extends('layouts.master')
вместо
@extends('hello')
в своем hello.blade.php
просмотр файлов и убедитесь, что у вас есть мастер-макета в :
<!DOCTYPE html>
<html>
<head>
<title>swag</title>
</head>
<body>
@yield('content')
</body>
</html>