我的laravel视图结构是这样的:
/views/layouts/default.blade.php
包含
<html>
@yield('header')
<body>
@yield('navigation')
@yield('content')
@yield('footer')
</body>
跟随
/views/partials/footer.blade.php
/views/partials/header.blade.php
/views/partials/navigation.blade.php
在我的标题视图中,我有一个var $ title 我正试图在主页上动态设置它。
所以在我的视图中位于/pages/index.blade.php 我得到了这个
@layout('layouts.default')
@section('header')
@render('partials.header')
@endsection
@section('navigation')
@render('partials.menu')
@endsection
@section('footer')
footer
@endsection
@section('content')
@endsection
我在某处读到标题var应该通过控制器传递但是我不能这样做:(
我尝试了这个没有任何成功。$ title在标题部分视图中未定义..
class Home_Controller extends Base_Controller {
public $layout = 'layouts.default';
public function action_index()
{
$this->layout->nest('header', 'home.index')->with('title', 'James');
$posts = Post::with('author')->all();
return View::make('home.index');
}
答案 0 :(得分:1)
在Laravel的Blade模板引擎中,您可以使用@render
或@include
来渲染视图。
但是,如果使用@render
,渲染的视图将不会从当前视图继承数据。因此,如果您需要继承变量等,则需要使用@include
。有关详细信息,请参阅docs on templating。