ZendFramework入門・その2 アクションメソッドの追加とリンクの扱い方
2007-09-03


のっけからお詫び

すみません、このエントリ書くまで気づきませんでしたが、前回示したフォルダツリーで、ビュースクリプト関連で1階層抜けてました。具体的には「htdocs/zf1/application/views/scripts/index/」の「scripts」部分が抜けてました。どうもすみませんでした。

2つ目のアクションメソッド

気を取り直して、本題です。

少し期間が空いてしまいましたが、前回の続きでアクションコントローラを扱います。前回はデフォルトのアクションメソッド(indexAction)のみの実装でしたが、まずは2つ目のアクションメソッドを実装するところからはじめましょう。

アプリケーションは前回のものをそのまま流用しますので、これからやる作業は

の2点です。

/application/controllers/IndexController.phpを以下のようにします。

<?php
require_once 'Zend/Controller/Action.php';

// IndexController
class IndexController extends Zend_Controller_Action {
        // indexアクション
        public function indexAction() {
                $this->view->assign( 'message', 'ようこそ Zend Frameworkへ' );
        }
        
        // 今回追加したsecondアクション
        public function secondAction() {
                // indexActionと同様にメッセージをassignする
                $this->view->assign( 'message', '2つ目のアクション' );
        }
}
IndexController.php

対応するsecond.phtmlは、とりあえずindex.phtmlをそのままコピーしてリネームしてください。

ここまでの作業で、ファイル一式は以下のようになります。

この状態で「http://<host名>/zf1/index/second」にアクセスすると、「2つ目のアクション」と表示されるはずです。

以降、基本的には、「アクションメソッドを増やしたら、対応するビュースクリプトを追加する」というような拡張方法になります。

相互にリンクを張ってみる

さて、せっかくアクセスできるURLが2つに増えたのに、それぞれいちいちURLを直接打ち込んでいたら面倒この上ないので、それぞれのアクションメソッド(のビュー)からお互いにリンクを張ってみることにします。

ビュースクリプト中に直接記述してもいいのですが、リンクアドレスの情報はコントローラ側で管理し、ビュースクリプトはそれをレンダリングするだけに分離するのが筋だと思いますので、そのようにしてみます。

まずは2つのアクションメソッド内で「$this->view」にリンクさせるアドレスをassignさせます。こんな感じでしょうか。

<?php
require_once 'Zend/Controller/Action.php';

// IndexController
class IndexController extends Zend_Controller_Action {
        // indexアクション
        public function indexAction() {
                $this->view->assign( 'message', 'ようこそ Zend Frameworkへ' );
                
                // secondActionへのリンクをビューへ追加
                $this->view->assign( 'link', 'index/second' );
        }
        
        // secondアクション
        public function secondAction() {
                $this->view->assign( 'message', '2つ目のアクション' );
                
                

続きを読む

[PHP]
[Zend Framework]
[Zend Framework 入門]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット