在深入研究 Laravel 4 的嵌套视图之后,我已经成功地完成了我想做的事情。毕竟这没什么大不了的。在控制器中我已经这样做了
$selected_char = User::find(Auth::user()->id)->character()->where('char_name', '=', $character)->first();
$title_list = Character::find($selected_char->id)->title()->get();
$data = array();
$data['title_list'] = $title_list;
return View::make('layout.profile')
->nest('title_details', 'layout.titledetail', $data);
nest 方法的第三个参数必须是一个数组。然后,您可以使用
访问子视图中的信息
titledetail.blade.php
@section('title-content')
@foreach($title_list as $t)
<div class="infocontainer">
<br> {{$t->char_title}} of {{$t->title_name}} {{$t->title}}
</div>
@endforeach
@endsection
我在这里所做的是,我为我的对象保存的每条记录创建了一个名为“infocontainer”的新 div。你不必这样做。
在主视图中,您专门转到您希望将子视图放入的 div 并在那里生成子视图:
<div class="example">
@yield('title-content')
</div>
你甚至不需要 @include('title-content') 只需在指定的 div 中产生它
您甚至可以从控制器发送其他变量
return View::make('layout.profile')
->nest('title_details', 'layout.titledetail', $data)
->with('example_var1', $example_var1)
->with('example_var1', $example_var1)
甚至嵌套额外的视图。
return View::make('layout.profile')
->nest('title_details', 'layout.titledetail', $data)
->nest('add_title_details', 'layout.addtitledetails', $data)
不要忘记将新嵌套视图的附加变量放在 $data 数组中。例如,当您想要通过访问链接或按下第一个嵌套视图中的按钮来呈现第二个嵌套视图时,就会出现这种情况。
差不多就是这样。我什至开始用 Javascript 做这个。但是不,你所拥有的非常强大。我希望这对我有所帮助。