2

ファイル: app/route.php

Route::get('/', function()
{
    return View::make('home');
});

ファイル: app/views/home.blade.php

{{-- Blade comment. --}}
@extends('layouts.base')

@section('head')
    <link rel="stylesheet" href="second.css" />
@stop

@section('body')
    <h1>Heading</h1>
    <p>Hello Home!</p>
@stop

ファイル: app/views/layouts/base.blade.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    @section('head')
    <link rel="stylesheet" href="style.css" />
    @show
</head>
<body>
    @yield('body')
</body>
</html>

laravel.localhost/ にアクセスすると @extends('layouts.base') しか出力されない

ただし、削除すると

{{-- ブレイドのコメント。--}}

その後、完全に機能します。

何が問題なのかわかりますか?

4

2 に答える 2

2

はい、それは開発者による慣習です。BladeCompiler.phpの行を見てください119

protected function compileExtends($value)
    {
        // By convention, Blade views using template inheritance must begin with the
        // @extends expression, otherwise they will not be compiled with template
        // inheritance. So, if they do not start with that we will just return.
        if (strpos($value, '@extends') !== 0)
        {
            return $value;
        }
于 2013-12-28T03:09:22.207 に答える