1

我正在尝试使用 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 文件中调用时不显示任何内容。

我已经跟踪到 ViewRenderer 在使用 action() 助手调用时不可用的问题......或者至少不能像往常一样工作(自动呈现默认的 .phtml 文件)。

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

无论如何在使用 action() 视图助手时打开 ViewRenderer 吗?如果需要,我愿意替换 action() 视图助手。

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

谢谢

4

2 回答 2

1

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

$this->view = UsersModel::instance()->getActiveUsers();
于 2009-04-29T18:51:11.800 回答
0

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

更新:我对其进行了测试,它可以工作,尝试在控制器参数中编写“用户”而不是“用户”。

<div id="active-users">
    <?php echo $this->action('active', 'users') ?> 
</div>
于 2009-02-25T03:32:18.350 回答