使用没有刀片的laravel模板显示内容

时间:2013-03-06 17:16:39

标签: php layout laravel laravel-4

我有这个控制器方法

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。如何在模板中加载内容。我不想使用刀片。

2 个答案:

答案 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