コントローラ

アクションとテンプレートの構成例

showアクションを作成。URLは http://localhost/frontend_dev.php/goods/show になる。

  • actions/actions.class.php
     <?php
     class goodsActions extends sfActions
     {
       public function executeShow()
       {
          $this->mesg = 'SHOW!';
       }
     }
  • goods/templates/showSuccess.php
     <html>
     <body>
     <?php if ($mesg): ?>
     [<?php echo $mesg ?>]
     <?php endif; ?>
     </body>
     </html>

アクションからテンプレートに値を渡す

  • アクション
     public function executeIndex()
     {
       $this->setVar('foo', 'bar');
       $this->foo = 'bar';
     }
  • テンプレート
     <html><body>
     <?php echo $foo ?> <?php echo $bar ?>
     </body></html>

アクションでテンプレートを指定する

 public function executeIndex()
 {
   $this->setTemplate('foo');
 }

apps/frontend/modules/XXX/templates/fooSuccess.php が呼ばれる。

リクエストオブジェクト

 public function executeIndex(sfWebRequest $request)
 {
    $name = $request->getPamareter('name', 'default_name');
 }

リダイレクト

 $this->redirect('/error/message'); 

(メソッドの)転送

 $this->forward('top','index'); # topモジュールのindexメソッドへ転送

フラッシュ

 $this->setFlash('mesg', 'エラーが発生しました'); # あるリクエストで設定する
 ↓ 
 $mesg = $this->getFlash('mesg');                 # 次のリクエストで取得する
 ↓                                               # さらに次のリクエストではもう消えていて取得出来ない

テンプレートでフラッシュを参照する

 <?php if($sf_flash->has('mesg')): ?>
  <?php $mesg = $sf_flash->get('mesg') ?>
 <?php endif ?>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-08-10 (水) 16:15:03