CakePHP1.3.6:HABTM(hasAndBelongsToMany)とscaffold : 中間テーブル
前回、categoriesテーブルとitemsテーブルをHABTMで関係づける際に、category_itemsという中間テーブルを作成した。
調子にのって、このテーブルに以下のモデルを定義して、scaffoldでプログラムをジェネレートしてみる。
モデル
category_item.php
<?php class CategoryItem extends AppModel { public $name = 'CategoryItem'; public $belongsTo = array( "Category" => array( 'className' => 'Category', 'foreignKey' => 'category_id', ), "Item" => array( 'className' => 'Item', 'foreignKey' => 'item_id', ) ); } ?>
scaffoldを作ってみる。
category_items_controller.php
<?php class CategoryItemsController extends AppController{ public $name = 'CategoryItems'; public $scaffold; } ?>
scaffoldを使ってみる。
これまたビックリ。
CategoryItemsにアクセスすると、以下のような画面がでる。きっちり、中間テーブル(category_items)をメンテナンスできるようになっている。
ここで、New Category Itemをクリックすると、以下のように、関係性が直接定義できる。
以下は、New Itemをクリックしたとき。前回、Itemのscaffoldで生成される画面と同じ。
View画面も同様となる。
以下は、New Categoryをクリックしたとき。前回、Categoryのscaffoldで生成される画面と同じ。
表示画面も同様。
すごいもんだなぁ、と感嘆。