レシピ、アイテム、ユニットのテーブル/モデルがあります。レシピとアイテムとHABTMの関係があり、レシピを追加/編集するときにデフォルトの複数選択ボックスが表示されます。(ほとんどすべてにBakeを使用しています)。問題は、数量と単位を各アイテムに関連付ける必要があることです。
私が望んでいるUIのサンプル:
その大きな要素は、個々のアイテムを追加/削除/編集する機能です。送信されたフォームデータを見て、jqueryとcloneを使用するとうまくいくと思います。しかし、誰かがすでにこのためのビヘイビアを作成したのではないかと思っていましたか?
現在のモデル(関連するものに短縮、つまりユーザー/メモなどを削除):
class Item extends AppModel {
var $name = 'Item';
// id : int
// name : varchar
// unit_id : int
var $belongsTo = array(
'Unit' => array(
'className' => 'Unit',
'foreignKey' => 'unit_id'
),
);
var $hasAndBelongsToMany = array(
'Recipe' => array(
'className' => 'Recipe',
'joinTable' => 'recipes_items',
'foreignKey' => 'item_id',
'associationForeignKey' => 'recipe_id',
)
);
}
。
class Recipe extends AppModel {
var $name = 'recipe';
var $displayField = "name";
// id : int
// name : varchar
var $hasAndBelongsToMany = array(
'Item' => array(
'className' => 'Item',
'joinTable' => 'recipes_items',
'foreignKey' => 'recipe_id',
'associationForeignKey' => 'item_id',
)
);
}
。
class RecipesItem extends AppModel {
var $name = 'RecipesItem';
// id : int
// quantity : int
// unit_id : int
// recipe_id : int
// item_id : int
var $belongsTo = array(
'Unit' => array(
'className' => 'Unit',
'foreignKey' => 'unit_id'
),
'Recipe' => array(
'className' => 'Recipe',
'foreignKey' => 'recipe_id'
),
'Item' => array(
'className' => 'Item',
'foreignKey' => 'item_id'
)
);
}