Лопастной двигатель в 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>