CakePHP 3属于气孔条件

CakePHP 3属于气孔条件,cakephp,associations,cakephp-3.x,model-associations,Cakephp,Associations,Cakephp 3.x,Model Associations,我在为我的BTM关联声明条件时遇到问题-可能理解错误 想象几个表——Notes、NoteSenties、Entities(最后一个表不是实际的表,但可以是任何类似产品、客户、服务等的表) 在NotesTable中有“实体”字段,其中有“服务”、“产品”等值 我在NotesTable中有这样一个关联,假设只有在NotesTable=“Services”中的“entity”字段出现时,它才会从ServicesTable中获取行: 但是这个条件不起作用,所以如果我想获取一张便笺,其中entity=“C

我在为我的BTM关联声明条件时遇到问题-可能理解错误

想象几个表——Notes、NoteSenties、Entities(最后一个表不是实际的表,但可以是任何类似产品、客户、服务等的表)

在NotesTable中有“实体”字段,其中有“服务”、“产品”等值

我在NotesTable中有这样一个关联,假设只有在NotesTable=“Services”中的“entity”字段出现时,它才会从ServicesTable中获取行:

但是这个条件不起作用,所以如果我想获取一张便笺,其中entity=“Customers”,它也会获取服务,其中service的id=客户想要的id。例如:我获取了一张带有entity=“Customers”的便笺,该便笺与ID为[1,2]的客户相连。那很好。但当我包含服务时,它也会获取ID为[1,2]的服务,而不是将“服务”数组留空,除非entity=“Services”

有没有办法实现这种联系?是否可以在CakePHP 3中设置这样的全局条件?我相信我不是唯一一个可以使用这种东西的人。我错过了什么

编辑1: 反之亦然。如果我获取一个客户并包含注释,则一切正常,它只获取带有entity=“Customers”的注释

$this->belongsToMany('Services', [
    'foreignKey' => 'note_id',
    'targetForeignKey' => 'entity_id',
    'joinTable' => 'notes_entities',
    'conditions' => ['Notes.entity' => 'Services']
]);