Laravel 4 上的刀片模板引擎语法问题

Posted

技术标签:

【中文标题】Laravel 4 上的刀片模板引擎语法问题【英文标题】:Blade templating engine syntax issues on Laravel 4 【发布时间】:2012-12-15 15:36:26 【问题描述】:

我目前正在Laravel 4 的测试版上启动一个项目

当我尝试使用模板引擎时,有些标签可以工作,有些则不能。例如:

@layout('layouts.master')
@section('container')
    <h1>About US</h1>
@endsection

显示为:

@layout('layouts.master')

About US

@endsection

这意味着@section标签被解析,而另一个被称为纯文本。 另外,如果我将@layout 更改为@include,它确实包含模板。

有没有人遇到过类似的问题?是否有任何我不知道的语法更改?

【问题讨论】:

【参考方案1】:

问题的根源在于很多在线教程(youtube 和博客)仍然使用@layout 和@end 部分。这些教程通常也声称是 Laravel4 教程。

所以很多人在开始他们的第一个 Laravel4 应用程序时就掉进了这个小陷阱。

提示:我在开发时使用这个人的备忘单page(Jesse O'Brien 专有)。这就是我发现自己使用过时的刀片标签的方式。

【讨论】:

【参考方案2】:

如果您在使用 Laravel 时遇到问题,或者如果您不知道 Laravel 是否内置了您需要的功能,请务必查看您使用的 Laravel 版本的文档。

当前发布版本的在线文档(撰写本文时为 4 个):http://laravel.com/docs/

Laravel API在线深入了解源代码,并解释例如函数参数:http://laravel.com/api/

【讨论】:

【参考方案3】:

@layout 在 Laravel 4 中已更改为 @extends。另外,@endsection 已更改为 @stop

【讨论】:

@include 是否已更改或替换? documentation is pretty good. 你刚刚从 laravel 开发者那里得到了答案 :)

以上是关于Laravel 4 上的刀片模板引擎语法问题的主要内容,如果未能解决你的问题,请参考以下文章

@include 之后刀片未在刀片中显示内容 - Laravel 4.2

Laravel 4刀片模板导致FatalErrorException?

Laravel 4刀片模板不会呈现整个页面

Laravel 4 控制器模板/刀片 - 正确的方法? [关闭]

在 Laravel 刀片模板中调用 ReactJS 组件

是否可以在 Laravel (4) 刀片模板中获取视图/布局名称