在 Laravel 4 中,有多种方法可以在视图中包含视图。您的选择将取决于下面概述的任何一种结果......
灵活性
您可以在适当的控制器中编译(渲染)$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 模板”,因此我确保提供不包含任何 Blade 模板代码的解决方案。
祝你好运 :)