我正在尝试搜索用户模型和地址模型的几个条件。这里的地址模型与hasMany关系中的用户模型相关联。用户模型上的任何条件都可以正常工作但不能在地址模型中工作。这是我的代码片段。
$this->hasMany('Addresses', [
'foreignKey' => 'user_id',
'joinType' => 'LEFT'
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id'
]);
$options = array();
$status = $this->request->getQuery('status');
$options = array_merge(array('Users.status' => $status), $options);
$profile = array();
$phone = $this->request->getQuery('phone');
$profile = array_merge(array('Addresses.phone' => $phone), $profile);
$addressArr = array('Addresses.user_id', 'Addresses.mobile', 'Addresses.phone', 'Addresses.country_id', 'Addresses.state_id', 'Addresses.city', 'Addresses.zipcode', 'Addresses.address_line1');
$uses = $this->find('all')
->select(['Users.id', 'Users.user_type_id', 'Users.first_name', 'Users.last_name', 'Users.email', 'Users.image', 'Users.status', 'Users.social_type'])
->contain([
'Addresses' => function ($q) use ($addressArr, $profile) {
return $q->select($addressArr)->where($profile);
}
])
->where($options)
->offset($offset)
->limit($limit)
->toArray();
return $uses;