有许多线程处理子视图,有许多不同的答案。我并没有真正找到匹配的答案,虽然我猜我的模式很常见:
页面显示查询结果。可以通过用户交互使用Ajax更新结果区域。因此,我有两个控制器:
pageDisplay
,它呈现整体视图(没有结果)resultsDisplay
,使用子视图生成并呈现结果我的问题涉及使用默认设置初始显示结果。如何从resultsDisplay
?
pageDisplay
控制器
有几个我不能(或不想)使用的选项:
@include
作为主视图包含子视图不知道要发送到子视图的相应变量。这些变量由resultsDisplay
控制器resultsDisplay
控制器的代码复制到pageDisplay
控制器中。这太丑了,难以维持...... 也许我可以从主控制器调用子控制器。但我不知道怎么做,因为子控制器返回一个视图......
感谢您的帮助!
答案 0 :(得分:1)
我认为你所追求的是nest()
来嵌套子视图。这是一个例子:
// Show view and nest sub view passing $foo and $bar to sub view
$foo = 'Some foo data';
$bar = 'Some bar data';
View::make('pageDisplay')->nest('child', 'resultsDisplay', compact('foo', 'bar));
然后在pageDisplay
视图中,您只需回显嵌套视图:
<div id="myChildView">
{{ $child }}
</div>
在您的子视图中,您可以使用您传递的$foo
和$bar
个变量。
在此处查看官方文档(在将子视图传递给视图下):http://laravel.com/docs/responses#views