cakephp - CakePHP 3 属于ToMany 条件
问题描述
我在为我的 BTM 关联声明条件时遇到问题 - 可能误解了一些东西。
想象一下几个表——Notes、NotesEntities、Entities(最后一个不是实际的表,但可以是任何表,如 Products、Customers、Services 等......)
在 NotesTable 中有“实体”字段,其中有“服务”、“产品”等值...
我在 NotesTable 中有这样的关联,假设只有在 NotesTable 中的“实体”字段 =“Services”时它才会从 ServicesTable 中获取行:
$this->belongsToMany('Services', [
'foreignKey' => 'note_id',
'targetForeignKey' => 'entity_id',
'joinTable' => 'notes_entities',
'conditions' => ['Notes.entity' => 'Services']
]);
但是条件不起作用,所以如果我想获取一个注释,其中实体 =“客户”,它也会获取服务,其中服务的 id = 客户的想要的 id。例如:我获取一个具有 entity = "Customers" 并连接到 ID 为 [1, 2] 的客户的注释。这很好用。但是当我包含服务时,它还会获取 ID 为 [1, 2] 的服务,而不是将“服务”数组留空,除非实体 =“服务”。
有没有办法实现这种关联?是否可以在 CakePHP 3 中设置这样的全局条件?我相信我不是唯一一个可以使用这种东西的人。我错过了什么?
编辑1: 相反的方法。如果我获取客户并包含注释,一切都很好,它只获取实体 =“客户”的注释。
解决方案
推荐阅读
- android - Android P - NetworkSecurityPolicy.isCleartextTrafficPermitted false 当 network-security-config base-config cleartextTrafficPermitted true
- angular - 未找到未定义的组件工厂。您是否将其添加到 @NgModule.entryComponents
- java - 杰克逊忽略嵌套属性
- c# - C# 异步处理 N 个事件
- r - ggplot2 - 如果为负,则反转调色板
- yaml - YAML中波浪字符〜的目的是什么?
- graphql - 使用 npm 运行 postgraphile
- android - Visual Studio 中的 Android 模拟器:连接到 Internet 时的连接不安全
- php - 如何在 laravel nova 中使用用户名而不是电子邮件登录?
- angular - @Injectable(providedIn: 'root') 的语义?