我正在尝试使用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。
由于
答案 0 :(得分:1)
我认为您应该从控制器分配活动用户,或者如果您希望在模型上使用单例,可以直接在视图中使用
$this->view = UsersModel::instance()->getActiveUsers();
答案 1 :(得分:0)
您是否正在使用_forward()o重定向您的操作?导致_forward()或重定向的操作被视为无效,并将返回空字符串。
更新:我测试它,并且它可以工作,尝试在控制器参数中写'用户'而不是'用户'。
<div id="active-users">
<?php echo $this->action('active', 'users') ?>
</div>