0

ホームページ(Layout / default.ctp)に1ページのWebサイトがあります。サブスクライブフォームと連絡フォームの2つのフォームがあり、連絡先コントローラーで制御されています。$ this-> set('some_val'、'test');を使用します。AppControllerから値を設定できますが、連絡先コントローラーからは設定できません。セッションを除いて、デフォルト.ctpで使用できるように連絡先コントローラーから値を設定するにはどうすればよいですか?

public function beforeFilter() {
    parent::beforeFilter();
    //pr('beforeFilter'); // i was testing is this happening or not
    //exit();
    $tester = 'test';
    $this->set(compact('tester'));
}

そしてdefault.ctpでは私はただpr($ this-> viewVars); テスターの値があることを確認しますが、常に空です。

この正しいアプローチは、1つのページデザインに複数のコントローラーを実装する方法ですか?

もう一つの質問は、現在のリクエスト投稿かどうかを確認できる場所/機能があります。リクエストごとに確認したいのですが、それは何ですか?

ありがとうございました。

4

2 に答える 2

1

私が正しく理解しているかどうかはわかりませんが、複数のレイアウトが必要になる可能性があります。

class CarsController extends AppController
{
  public function index($page)
  {
    /* Your logic */

    if ( $page == 'other' ) {
      $this->render('view', 'layout');
    } else {
      $this->render('view-other', 'layout-other');
    }
  }
}

詳細については、http://api20.cakephp.org/class/controller#method-Controllerrenderを参照してください。

于 2012-11-02T13:22:57.423 に答える
0

echo$testerを試してください。デフォルトでは、使用可能である必要があります。

リクエストが投稿の場合、$this->dataにデータがあります。

于 2012-11-02T12:37:08.287 に答える