【问题标题】:what is "Defining A Layout On A Controller" in Laravel?Laravel 中的“在控制器上定义布局”是什么?
【发布时间】:2015-01-09 13:05:48
【问题描述】:

什么是 Laravel 中的“在控制器上定义布局”?例如这段代码:

$this->layout->content = View::make('user.profile');

这是什么意思?:

$this->layout->content

我已经阅读了文档,但我不明白。

【问题讨论】:

  • "Defining A Layout On A Controller" 表示您在控制器蚂蚁中定义它而不是在视图中。在刀片视图中,您可以通过 @extends('layout').... 定义布局。

标签: php laravel view blade


【解决方案1】:

Laravel 为我们提供了两种不同的方式来使用Layout,在ControllerView 中通过扩展master/main 布局。因此,在控制器中定义布局如下所示:

class UserController extends BaseController {
    // The master layout in the layouts folder
    protected $layout = 'layouts.master';

    public function showProfile()
    {
        // Set the content to the master layout to display
        $this->layout->content = View::make('user.profile');
    }
}

因此,布局是template,其中视图生成的内容将在该布局中呈现。另一方面,您可以直接从视图中使用layout,在这种情况下,您不需要在控制器中定义布局。视图将像这样扩展主布局:

@extends('layouts.master')

@section('sidebar')
    <p>This is appended to the master sidebar.</p>
@stop

主布局可能如下所示:

<html>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show

        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

阅读更多关于Laravel website的信息。

【讨论】:

  • offtopic:您的博客 Alpha 上有一封邮件。
  • 非常感谢,但是@section('sidebar') 你为什么不使用@yield 来代替
猜你喜欢
  • 2012-11-10
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 2015-12-30
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多