ちょっとした謎: Index コントローラー (chartAction) とビューの間でビューを渡すことができないようです。ローカルホストにアクセスすると、phtmlビューにアクセスしていません-代わりに、毎回コントローラーを表示しているだけです(つまり"echo "HELLO WORLD!"";
、コントローラーに書き込むと、それがエコーされます...しかし、実行すると$this->view->test = "Hello World!"
、index.phtmlにアクセスしますと入力しecho $this->test;
て、何も得られません (それでもデフォルトでコントローラー アクションになります) ここで抜けているステップはありますか? なぜ$this->view
機能していないのですか? コマンド ラインを使用してビューを作成したので、そうすべきであると確信しています。何かを登録する必要がありますか? 助けてくれてありがとう!
3 に答える
ケース 1: 1 つのアクションだけで表示が無効になっている:
アクションで次のコードを探します。
$this->_helper->viewRenderer->setNoRender(true);
ケース 2: 特定のコントローラーのすべてのアクションで表示が無効になっている: コントローラー の init() または preDispatch() 関数で上記の行を探します。
ケース 3: すべてのコントローラーですべてのアクションの表示が無効になっている: ケース 1 と 2 を確認します。また、Bootstrap.php で次のようなものを探します。
$frontController->setParam("noViewRenderer", true);
上記のようなコードが見つかった場合は、ビューを機能させるためにコメントアウトする必要があります。ビューを無効にする可能性がもっとあると確信しています。これらは、この後で確認する必要があります。
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
設定が正しければ、ページに適切な応答が表示されます。
あなたのビューは無効になっています..あなたの、action
またはあなたのコントローラーのこれらのコード行、またはあなたが拡張している可能性init
のあるクラスをチェックしてくださいcontroller
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
アップデート
あなたは自分の中でそれを行い、あなたの中chartAction
で反響しています。index.phtml
あなたの中でそれをしなければなりませんchart.phtml