アクション

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

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 が呼ばれる。

リダイレクト

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

(メソッドの)転送

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

セッション

 $this->getUser()->setAttribute('mesg', 'エラーが発生しました'); # 設定
 $mesg = $this->getUser()->getAttribute('mesg');                 # 取得
 $mesg = $this->getUser()->hasAttribute('mesg');
 $this->getUser()->getAttributeHolder()->remove('mesg');         # 削除
 <html><?php $sf_user->getAttribute('mesg')?></html>             # テンプレートで参照する
 

フラッシュ

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

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

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

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS