在Laravel 3中,我曾经这样做.
<?PHP render('partials.header'); ?>
这是在“PHP”视图中完成的,而不使用Laravel的Blade模板.
与版本4相当的是什么?
我试过了
<?PHP @include('partials.header'); ?>
这不行.
如果我做
@include('partials.header')
如何在不使用刀片模板的情况下添加“子视图”?
在Laravel 4的视图中包含一个视图有不同的方法.您的选择将取决于下面概述的任何一个结果…
灵活性
您可以在相应的Controller中编译(渲染)部分视图,并使用$data [”]数组将这些视图传递到主视图.
这可能会变得乏味,因为视图的数量增加,但嘿,至少有很多的灵活性:)
有关示例,请参阅以下代码:
调节器
... public function showMyView() { /* Header partial view */ $data['header'] = View::make('partials.header'); /* Flexible enough for any kind of partial views you require (e.g. a Header Menu partial view) */ $data['header_menu'] = View::make('partials.header_menu'); /* Footer partial view */ $data['footer'] = View::make('partials.footer'); return View::make('myView',$data); } ...
视图
<html> <head></head> <body> <!-- include partial views --> <?PHP echo ($header) ?> <?PHP echo ($header_menu) ?> <div id="main-content-area"></div> <?PHP echo ($footer) ?> </body> </html>
您的部分视图现在将添加到您的主视图.
简单
实际上比使用上面的方法更简单:简单地将它包含在视图的html中…
视图
<html> <head></head> <body> <!-- include partial view: header --> <?PHP echo View::make('partials.header') ?> <div id="main-content-area"> </div> <!-- include partial view: footer --> <?PHP echo View::make('partials.footer') ?> </body> </html>
确保partials的文件夹结构是[views / partials / header.PHP],以便为Laravel的View :: make()函数提供正确的文件路径.
警告
如果您尝试在控制器中传递$data [‘page_title’],嵌套视图将不会接收数据.
要将数据传递给这些嵌套视图,您需要这样做:
<html> <head></head> <body> <?PHP /* Pass page title to header partial view */ $data ['page_title'] = "My awesome website"; echo View::make('partials.header',$data); ?> <div id="main-content-area"></div> <?PHP echo View::make('partials.footer') ?> </body> </html>
注意
问题清楚地表明:“没有使用刀片模板”,所以我已经确定提供一个不包括任何Blade模板代码的解决方案.
祝你好运 :)