CakePHP2 の scaffold 応用編を通して使いどころを少しだけ考えます!

CakePHP の scaffold を体験します♪ | oki2a24 の次の投稿となります。

scaffold を上書きして捨てていく開発、scaffold を使用して見た目だけ変える開発ができるようなので、見てみます。

ポイント

  • scaffold のレイアウトを修正するには、cake/sample/lib/Cake/View/Scaffolds/ フォルダのテンプレートをコピーして、cake/sample/app/View/Scaffolds/ フォルダに入れて、これを修正します。
  • scaffold のアクション、index、add、edit、view、delete、はオーバーライドできます。
    ※継承した子クラスで親クラスのメソッド、プロパティを上書きすることです。

前提

  • CakePHP 2.1.3 導入済み。
  • ドキュメントルート/cake/sample/(ここにCakePHP が入ってます。app ディレクトリとか、.travis.yml ファイルとか。)

scaffold のレイアウトを修正するソース

cake/sample/lib/Cake/View/Scaffolds/ フォルダに入っている3つのテンプレートをコピーして、cake/sample/app/View/Scaffolds/ フォルダに入れます。そして、コピーした3つのビューに固定文字列を入れてみました。

  • form.ctp
  • index.ctp
  • view.ctp

結果、挿入した固定文字列が表示されました!ということで、この方法で scaffold のレイアウトが修正可能であるとわかりました♪

scaffold を上書きして捨てていくソース

cake/sample/app/Controller/BoardsController.php

<?php

class BoardsController extends AppController {

	public $name = 'Boards';
	public $scaffold;

	public function index() {
		$data = $this->Board->find('all');
		$this->set('data', $data);
	}

	public function add() {
	}

	public function edit() {
	}

	public function view() {
	}

	public function delete() {
	}
}

?>

結果

scaffold を有効にした上で、index、add、edit、view、delete アクションをコントローラーに書くと自分で作ったこれらのアクションの方が実行されました。その結果、ビューを作成していない index 以外のアクションでは、エラー画面が表示されてしまいましたっ!

index のアクションとビューは以前の投稿、CakePHP で DB データを表示するシンプルな例!モデルなしで勉強です! | oki2a24 をご参照くださいませ。

おわりに

まずは scaffold を有効にしておいて開発を進め、めどがついたら無効にする、そういう使い方がよさそうに思います。scaffold をそのまま使うことは、なさそうな気がします。なんとなくですけれども。

ディスカッションに参加

1件のコメント

コメントを残す

コメントを残す