0

現時点ではアップグレードできないバージョン1.0.17を使用しているSymfonyアプリケーションで立ち往生しています。

現在、同じモジュールから異なるアクションのWebページをロードするiframeを含むページがあります。iframeは、いくつかのデザインの問題といくつかのユーザーエクスペリエンスの問題を引き起こしているので、それを取り除き、iframeからHTMLをページに直接レンダリングしたいと思います。

別のアクションを実行して、ビューテンプレートを呼び出し元のアクションのビューに割り当てることができる変数にレンダリングする方法がわかりません。

試しましgetPresentationFor()たが、呼び出しページで404が発生し、試行方法に応じて例外または致命的なエラーが発生します。

executeアクションのメソッドにコードを入れる必要があると思います。コントローラはsfActionオブジェクトです。電話をかける$this->getController()sfWebControllerオブジェクトが表示されます。

呼び出し:

$this->getController()->getPresentationFor('module', 'ContactIframeAction');

空白のページになります。その呼び出しの後のコードは実行されませんが、それより前に何かを出力すると、ページに表示されます。サーバーエラーログにエラーはありません。

呼び出し:

$this->getController()->getPresentationFor('module', 'ContactIframe');

404ページが表示されるだけなので、前の呼び出しは私が望むものに近いと思います。

別のアクションのコードから別のアクションの出力をレンダリングする方法はありますか?

ありがとう。

4

1 に答える 1

1

たぶん

$this->theContent = $this->getController()->getPresentationFor('module', 'contactIframe'); // minus 'c'

使用する :

// modules/mymodule/actions/actions.class.php
class myPageActions extends sfActions {

    public function executeIndex() {
        // ...
        $this->theContent = $this->getController()->getPresentationFor('module', 'contactIframe');                  
    }
}

// modules/mymodule/templates/indexSuccess.php
<?php echo $theContent ?>
于 2012-11-15T19:30:42.157 に答える