1

アクションヘルパーを使用してビューからアクションを実行しようとしていますが、アクションが実行されても出力が表示されません。

これが私の .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 を使用しています。

ありがとう

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 に答える