Zend Framework的Action助手不使用ViewRenderer

时间:2009-02-25 02:30:20

标签: zend-framework action

我正在尝试使用Action帮助程序从视图中执行操作,但是虽然已执行操作但未显示输出。

这是我的.phtml文件的一部分:

<div id="active-users">
<?php echo $this->action('active', 'Users') ?>
</div>

这个动作是这样的:

class UsersController extends Zend_Controller_Action
{
    function activeAction()
    {
        $model = new UsersModel();
        $this->view->users = $model->getActiveUsers();
    }
}

还有另一个.phtml文件,用于呈现用户列表。直接从/ users / active调用时,该操作正常,但在从另一个.phtml文件调用时不显示任何内容。

我跟踪了使用action()帮助程序调用时ViewRenderer不可用的问题...或者至少不像往常那样工作(自动渲染默认的.phtml文件)。

如果我在动作中显式渲染视图但是我需要ViewRender行为,则显示内容,因为我不控制我需要使用的某些动作的代码。

在使用action()视图助手时,是否仍然打开ViewRenderer?如果需要,我可以替换action()视图助手。

我忘记了:我在Windows Vista上使用PHP 5.2.8,Zend Framework 1.7.5,Apache 2.2。

由于

2 个答案:

答案 0 :(得分:1)

我认为您应该从控制器分配活动用户,或者如果您希望在模型上使用单例,可以直接在视图中使用

$this->view = UsersModel::instance()->getActiveUsers();

答案 1 :(得分:0)

您是否正在使用_forward()o重定向您的操作?导致_forward()或重定向的操作被视为无效,并将返回空字符串。

更新:我测试它,并且它可以工作,尝试在控制器参数中写'用户'而不是'用户'。

<div id="active-users">
    <?php echo $this->action('active', 'users') ?> 
</div>