Laravel 3刀片模板无法正常工作

时间:2013-06-08 05:27:53

标签: laravel blade

我正在学习Laravel 3,但Blade模板无效。我的代码看似正确,但显示的只是@layout('master')。页面源仅包含此文本。 application\views\home\index.blade.php内容:

@layout('master')

@section('main')
    {{ $greeting }}
@endsection

application\views\master.blade.php内容:

<!doctype html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Hello world!</title>
</head>
<body>
    <div id="container">
        @yield('main')
    </div>
</body>
</html>

routes.php

Route::get('/, home', function()
{
$greeting = "Hello world";
return View::make('home.index')->with('greeting',$greeting);
});

什么可能导致刀片无法工作?我也尝试了Laravel 4,并将@layout更改为@extends,将@endsection更改为@stop但情况相同。我只得到@extends('master')

3 个答案:

答案 0 :(得分:0)

不确定......但我认为是因为你的文件顶部有空格....

@layout('master')

需要直接位于文件的顶部才能正常工作... 如果你知道我想说的话,它只是将@layout('master')作为页面上的文字回应:)

答案 1 :(得分:0)

在L4中我也一样...... 检查你的代码编辑器的charset!有时一些隐藏的字符在文件的开头。 我切换到“没有BOM的UTF-8”

答案 2 :(得分:0)

在代码之前删除每个空格或EOL,CR,LF,Enter,\ n(或其他)。 Laravel 4中的问题相同,我按照quick start创建视图的步骤我留下了新的一行。

-New line here, and it brokes-
@extends('layout')

@section('content')
    Users!
@stop

再次移除@extends('layout')之前的任何内容,它对我有用!!