如何使用Laravel官方文档?

时间:2016-01-20 04:45:41

标签: laravel

这似乎是一个奇怪的问题,但我是Laravel的新手,并且在官方文档中找到正确的语法时遇到了很多麻烦。这是一个例子。我使用以下刀片语法尝试使用条件视图:

@if (condition)
  @extends 'layouts.regular'
@else
  @extends 'layouts.special'
@endif

这不起作用。然后我转到Laravel站点上的刀片文档并阅读Extending a Layout部分。一切似乎都很好,我花了10分钟调试我的代码,并试图找出我做错了什么。这一切似乎都是正确的,所以我然后使用谷歌找到了this thread

从我理解的评论:

  • @extends语句必须是刀片模板中的第一行
  • 您只能使用三元表达式
  • 来使用条件扩展

虽然这解决了我的问题,但找到它需要很长时间。我仍然无法弄清楚官方文档中提到的内容。我使用官方文档错了吗?还有其他更广泛的文档吗?我一直觉得在线文档非常简短,并且通常不能解释有关语法或异常的重要细节......

1 个答案:

答案 0 :(得分:0)

@extends总是出现在刀片的第一行,它用于定义布局,例如。

假设我们有 master.blade.php

execute

然后我们有 page.blade.php

<html>
    <head>
    </head>
    <body>
        @yield('content')
    </body>
</html>

现在,如果您有许多布局,并且想要与它共享内容,那么您可以通过编程方式远离刀片。以此为例

假设我们有 master.blade.php

@extends('master') // this one says this page will be placed in master.blade.php
@section('content') // find the line that says @yield('content') and replace it with...
    <h1> Hello World </h1>
@stop

我们有 master2.blade.php

<html>
    <head>
        <title>Master</title<
    </head>
    <body>
        @yield('content')
    </body>
</html>

我们有 page.blade.php

<html>
    <head>
        <title>Master 2</title>
    </head>
    <body>
        @yield('content')
    </body>
</html>

现在在控制器中我们做这样的事情

@section('content')
    <h1>Hello World</h1>
@stop
// note that we have no @extends()

请注意,我们使用$ layout-&gt;内容,因为这两种布局都在@yield中产生内容(&#39;内容&#39;)

相关问题