gpt4 book ai didi

php - CakePHP 多个 HABTM 关系

转载 作者:行者123 更新时间:2023-11-29 14:53:22 25 4
gpt4 key购买 nike

我有一个 Assets 表,其中包含所有 Assets 类型共享的所有字段,例如名称路径文件类型大小

现在,我有 2 种 Assets 类型:属于 architects 的 Assets 和属于 constructors 的 Assets 。所以我在这两种类型上建立了HABTM关系,即

      |-------- architects_assets ------- architects
assets|
|-------- constructors_assets ----- constructors

问题是,在创建 Assets 时,我希望每个 Assets 都是architects_assetconstructors_asset之一 —— Assets 永远不能同时是建筑师和 builder 的 Assets 。

简单的解决方案是创建 architect_assetsconstructors_assets 表并删除 assets 表,因为这样您就可以添加分别编辑、查看、删除每种类型。或者,我想我可以在 assets Controller 中创建 architects_asset_addconstructors_asset_add 操作,但随后我必须为编辑、查看、删除,显得臃肿。

您将如何解决这个问题?

最佳答案

我已经能够使用hasMany through关系来解决这个问题。这意味着为 architects_assetsconstrutors_assets 创建单独的 Controller ,但这适合我,因为我需要明确区分这两种 Assets 类型。

最终模型:

//asset
class Asset extends AppModel {
public $hasMany = array('ArchitectAsset', 'ConstructorAsset')
}

//architect asset
class ArchitectAsset extends AppModel {
public $belongsTo = array('Architect, Asset');
}

//architect
class Architect extends AppModel {
public $hasMany = 'ArchitectAsset';
}

//and the same for the ConstructorAsset and Constructor models

关于php - CakePHP 多个 HABTM 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com