CakePHP有一个/belongsTo模型关系



我想把几个模型联系起来。

一个模型是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出现在返回的数据中,但关联的资产却没有。我哪里做错了?

实际上我认为这是幻灯片和资产之间一对多的关系。来自模型关联页面:belongsTo:当前模型包含外键。所以,任何模型,如果有一个外键指向另一个,就属于另一个

所以我的看法是:

单品:

    <
  • hasMany幻灯片/gh>

幻灯片:

  • belongsTo Item (with item_id)
  • belongsTo Asset (with asset_id)
资产:

    <
  • hasMany幻灯片/gh>

要检索您想要的相关模型,我建议查看Containable行为。

最新更新