什么是Laravel中的“在控制器上定义布局”?例如这段代码:
$this->layout->content = View::make('user.profile');
这是什么意思?:
$this->layout->content
我已阅读文档,但我不理解。
答案 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。