2

我有这个控制器方法

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

4

2 回答 2

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>
于 2013-03-08T04:49:46.827 回答
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;
   }

或者使用刀片:在 Laravel 中进行模板化

于 2013-03-06T17:26:57.600 回答