我正在学习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')
。
答案 0 :(得分:0)
不确定......但我认为是因为你的文件顶部有空格....
@layout('master')
需要直接位于文件的顶部才能正常工作... 如果你知道我想说的话,它只是将@layout('master')作为页面上的文字回应:)
答案 1 :(得分:0)
答案 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')
之前的任何内容,它对我有用!!