我有物品和单位,并且希望每个物品都有一个单位,但许多人可以使用该单位。
项目表
id - int
name - varchar
description - varchar
unit_id - int
单位表
id - int
name - varchar
description - varchar
项目模型
var $hasOne = array( 'Units' => array( 'className' => 'Unit' ) );
单位型号
没什么,但以前我尝试过:var $belongsTo = array( 'Items' => array( 'className' => 'Item' ) );
当我在脚手架(列表项)中时,我得到:
Warning (512): SQL Error: 1054: Unknown column 'Units.item_id' in 'on clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 684]
在“编辑项目”屏幕中,“单位”下拉列表为空。知道我做错了什么吗?基本上,Units表只是填充Item条目表单中的下拉列表,但我希望它能在scaffold中自动填充。
答案 0 :(得分:1)
您的商品属于一个单位,您的单位 hasMany 商品。
belongsTo - 外键在当前模型中(Item的unit_id
)
hasMany - 外键在相关型号中
hasOne - 外键在相关模型中,只有一个
hasAndBelongsToMany - 外键位于单独的第三个表中