什么是Laravel中的“在控制器上定义布局”?

时间:2014-11-12 15:50:30

标签: php laravel view blade

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

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

这是什么意思?:

$this->layout->content

我已阅读文档,但我不理解。

1 个答案:

答案 0 :(得分:0)

Laravel通过扩展Layout布局,为Controller以及View中的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