CakePHP hasOne / belongsTo模型关系 [英] CakePHP hasOne/belongsTo model relationship
问题描述
我有几个模型我试图关联。
I have a few models I'm trying to relate.
一个模型是项
,一个是幻灯片
,另一个是资产
。
One model is Item
, one is Slide
, and another is Asset
.
在他们下的多个幻灯片。资产基本上是已上传的文件(图片,mp3等)和幻灯片是显示资产的位置。每个幻灯片都有一个资源,但指定的资源可能属于多个幻灯片。幻灯片已定义 asset_id
字段。
Items have multiple slides beneath them. Assets are basically files that have been uploaded (images, mp3s, etc) and slides are where assets are displayed. Each slide has one asset, but a given asset might belong to multiple slides. A slide has an asset_id
field defined.
我目前的模型定义为:
幻灯片
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
加载幻灯片时,元素,项目,通过返回的数据,但关联的资产不是。我在这里做错了什么?
When I load a slide, I'm seeing its parent element, Item, come through in the returned data, but the associated asset is not. What am I doing wrong here?
推荐答案
实际上,我认为这是幻灯片和资产之间的一对多关系。从模型关联页: belongsTo:当前模型包含外键。因此,任何具有另一个外键的模型属于另一个。
Actually I think this is a one-to-many relationship between Slide and Asset. From the Model associations page: belongsTo: the current model contains the foreign key. So, any model that has a foreign key to another one belongs to the other one.
所以我看到的方式:
项目:
- 有许多幻灯片
幻灯片:
- belongsTo Asset(with asset_id)
< Item(with item_id)
资产:
- 有许多幻灯片
想,建议您查看可控行为 。
这篇关于CakePHP hasOne / belongsTo模型关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!