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 をそのまま使うことは、なさそうな気がします。なんとなくですけれども。

「CakePHP2 の scaffold 応用編を通して使いどころを少しだけ考えます!」への1件の返信
[…] CakePHP の scaffold 応用編を通して使いどころを少しだけ考えます! | oki2a24 の次の投稿となります。 […]