我有这个控制器方法
class Account_Controller extends Base_Controller
{
public $layout = 'layouts.default';
public function action_index($a,$b)
{
$data['a'] = $a;
$data['b'] = $b;
$this->layout->nest('content', 'test',$data);
}
}
这是我的布局
<div id = "content">
<?php echo Section::yield('content'); ?>
</div>
这是我的test.php
echo $a;
echo '<br>';
echo $b;
echo 'this is content';
当我访问此
时http://localhost/myproject/public/account/index/name/email
我的布局已加载,但未加载test.php。如何在模板中加载内容。我不想使用刀片。
答案 0 :(得分:4)
当您将视图嵌套在另一个视图中时,其内容被定义为一个简单变量。所以,只需输出它:
<?php echo $content ?>
当您需要在子视图中更改布局(或任何父视图)上的某些内容时,会使用部分。例如:
// on layout.php
<title><?php echo Section::yield('title') ?></title>
// on test.php
<?php Section::start('title'); ?>
My Incredible Test Page
<?php Section::stop(); ?>
<div class="test_page">
...
</div>
答案 1 :(得分:2)
我认为你需要渲染它,不确定,可能是部分加载:
<div class="content">
<?php echo render('content.test'); ?>
</div>
查看此示例的嵌套视图:http://laravel.com/docs/views#nesting-views
public function action_dostuff()
{
$view = View::make('controller.account');
// try dump var to grab view var_dump($view);
var_dump($view);
$view->test = 'some value';
return $view;
}
或者使用刀片:Templating in Laravel