【问题标题】:How to use official Laravel documentation?如何使用 Laravel 官方文档?
【发布时间】:2018-03-04 04:03:40
【问题描述】:

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

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

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

从 cmets 中我了解到:

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

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

【问题讨论】:

    标签: laravel


    【解决方案1】:

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

    假设我们有 ma​​ster.blade.php

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

    然后我们有 page.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
    

    现在,如果您有许多布局并且想要与其共享内容,您可以在远离 Blade 的情况下以编程方式实现这一目标.. 举这个例子

    假设我们有 ma​​ster.blade.php

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

    我们有 ma​​ster2.blade.php

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

    我们有 page.blade.php

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

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

    if($cond) 
    {
        $layout = view('master');
    }
    else 
    {
        $layout = view('master2');
    }
    
    $page = view('page');
    $layout->content = $page; 
    
    return $layout;
    

    请注意,我们使用 $layout->content 是因为两种布局都在 @yield('content') 中产生内容

    【讨论】:

    • 谢谢,但请注意,我的问题与这个特定问题无关。它是关于在官方文档中找到这些类型的东西。你能指出我解释这一点的 Laravel 文档吗?
    猜你喜欢
    • 2022-12-05
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多