我正在尝试使用matching()函数过滤关联表中的数据。 退回记录,我获得当前客户购买的所有申请人。但我仍然会为申请人获得重复的值。
表格 - >申请人,购买,申请人_购买与belongsToMany关联购买&申请人。
这就是我想要做的事情。
$this->listConditions = ['Purchases.customer_id' => $user['customer_id']];
$query = $this->Applicants->find();
$query->matching('Purchases', function ($q) {
return $q->select(['Applicants.id'])->distinct(['Applicants.id'])->where($this->listConditions);
});
答案 0 :(得分:2)
没关系,我放了选择&在错误的一端有所区别。
当然需要像这样放在find()调用中。
$query = $this->Applicants->find()
->select(['Applicants.id'])
->distinct(['Applicants.id']);
$query->matching('Purchases', function ($q) {
return $q->where($this->listConditions);
});