0

ちょっとした謎: Index コントローラー (chartAction) とビューの間でビューを渡すことができないようです。ローカルホストにアクセスすると、phtmlビューにアクセスしていません-代わりに、毎回コントローラーを表示しているだけです(つまり"echo "HELLO WORLD!"";、コントローラーに書き込むと、それがエコーされます...しかし、実行すると$this->view->test = "Hello World!"、index.phtmlにアクセスしますと入力しecho $this->test;て、何も得られません (それでもデフォルトでコントローラー アクションになります) ここで抜けているステップはありますか? なぜ$this->view機能していないのですか? コマンド ラインを使用してビューを作成したので、そうすべきであると確信しています。何かを登録する必要がありますか? 助けてくれてありがとう!

4

3 に答える 3

2

ケース 1: 1 つのアクションだけで表示が無効になっている:

アクションで次のコードを探します。

   $this->_helper->viewRenderer->setNoRender(true);

ケース 2: 特定のコントローラーのすべてのアクションで表示が無効になっている: コントローラー の init() または preDispatch() 関数で上記の行を探します。

ケース 3: すべてのコントローラーですべてのアクションの表示が無効になっている: ケース 1 と 2 を確認します。また、Bootstrap.php で次のようなものを探します。

   $frontController->setParam("noViewRenderer", true);

上記のようなコードが見つかった場合は、ビューを機能させるためにコメントアウトする必要があります。ビューを無効にする可能性がもっとあると確信しています。これらは、この後で確認する必要があります。

于 2012-11-29T02:27:30.127 に答える
2

ZF1.x の標準 MVC セットアップを想定すると、url、コントローラー、およびアクションの間に明確な関係があります。

http://mydomain.com/indexという URLは、インデックスコントローラのインデックスアクションを呼び出します。通常、インデックス アクションはデフォルト アクションであり、自動的に呼び出されます。ビュースクリプトは/application/views/scripts/index/index.phtml

URL http://mydomain.com/index/chartはインデックスコントローラのチャートアクションを呼び出し、ビュー スクリプトは次のようになります。/application/views/scripts/index/chart.phtml

この動作は、構成およびルーティング オプションに基づいて変更できることに注意してください。

ZF での作業はかなり新しいようですね。したがって、次のようなものが関係を示すのに役立ちます。

// application/controllers/IndexController.php
class IndexController extends Zend_Controller_Action
{
    public function init()
    {

    }

    public function indexAction()
    {
        $this->view->test = "Hello World, from the indexAction().";
    }
    public function chartAction()
    {
        $this->view->test = "Hello World, from the chartAction().";
    }


// application/views/scripts/index/index.phtml
<?php echo $this->test ?>


// application/views/scripts/index/chart.phtml
<?php echo $this->test ?>

次の URL を呼び出して、アプリケーションをテストします。

http://yourDomain.com/index/index
http://yourDomain.com/index/chart

設定が正しければ、ページに適切な応答が表示されます。

于 2012-11-29T07:27:57.420 に答える
1

あなたのビューは無効になっています..あなたの、actionまたはあなたのコントローラーのこれらのコード行、またはあなたが拡張している可能性initのあるクラスをチェックしてくださいcontroller

$this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender();

アップデート

あなたは自分の中でそれを行い、あなたの中chartActionで反響しています。index.phtmlあなたの中でそれをしなければなりませんchart.phtml

于 2012-11-29T04:19:39.477 に答える