加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

CakePHP hasOne / belongsTo模型关系

发布时间:2020-12-13 17:09:39 所属栏目:PHP教程 来源:网络整理
导读:我有一些我试图联系的模型. 一个模型是Item,一个是Slide,另一个是Asset. 项目下面有多个幻灯片.资产基本上是已上传的文件(图像,mp3等),幻灯片是显示资产的位置.每张幻灯片都有一个资产,但给定资产可能属于多个幻灯片.幻灯片定义了asset_id字段. 我目前将模型
我有一些我试图联系的模型.

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

解决方法

实际上我认为这是幻灯片和资产之间的一对多关系.从 Model associations page:belongsTo:当前模型包含外键.因此,任何具有另一个外键的模型都属于另一个.

所以我看待它的方式:

项目:

> hasMany Slide

滑动:

> belongsTo Item(with item_id)
> belongsTo Asset(with asset_id)

资产:

> hasMany Slide

为了检索你想要的相关模型,我建议查看Containable behavior.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读