我有一些我试图联系的模特。
一个模型是Item
,一个是Slide
,另一个是Asset
。
项目下面有多个幻灯片。资产基本上是已上传的文件(图像,mp3等),幻灯片是显示资产的位置。每张幻灯片都有一个资产,但给定资产可能属于多个幻灯片。幻灯片定义了asset_id
字段。
我目前将模型定义为:
幻灯片
class Slide extends AppModel {
var $name = 'Slide';
var $order = array("Slide.order" => "asc");
var $belongsTo = 'Item';
var $hasOne = array(
'Asset' => array(
'className' => 'Asset',
'foreignKey' => 'id',
'dependent' => false
)
);
} // Slide class
资产
class Asset extends AppModel {
var $name = 'Asset';
var $displayField = 'name';
var $belongsTo= array(
'Assetdir' => array(
'className' => 'Assetdir',
'foreignKey' => 'assetdir_id'
),
'Slide' => array(
'className' => 'Slide',
'foreignKey' => 'id'
)
);
} // Asset class
当我加载幻灯片时,我看到其父元素Item在返回的数据中出现,但关联的资源却没有。我在这里做错了什么?
答案 0 :(得分:4)
实际上我认为这是Slide和Asset之间的一对多关系。从Model associations page: belongsTo:当前模型包含外键。因此,任何具有外键的模型属于另一个。。
所以我看待它的方式:
项目:
幻灯片:
资产:
为了检索您想要的关联模型,我建议您查看Containable behavior。