условия не работают на ассоциации hasMany с использованием содержимого в cakephp 3 - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь выполнить поиск по нескольким условиям модели пользователей и моделей адресов.Здесь модель адресов связана с моделью пользователей в отношении 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;
...