Альтернатива использования ** joinType ** для моделей hasMany и BelongsToMany - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу получить результаты модели / таблицы слева, если и только если условие удовлетворяет в модели справа / содержать для ассоциации hasMany и BelongsToMany.

Насколько мне известно, joinType недоступен для hasMany и BelongsToMany , так что я не могу использовать InnerJoin ...

Это мой запрос,

$this->loadModel('Logins');
        $x = $this->Logins->find('all', [
            'fields' => ['id', 'user_name'],
            'contain' => [
                'Sites' => ['conditions' => ['site_id' => 10]]
            ],
        ]);
        pr($x->enableHydration(false)->toArray());
        die;

И это результат,

[0] => Array
        (
            [id] => 13
            [user_name] => Mal123
            [sites] => Array
                (
                )

        )

    [1] => Array
        (
            [id] => 14
            [user_name] => rrc
            [sites] => Array
                (
                    [0] => Array
                        (
                            [id] => 10
                            [site_name] => Smelter
                            [site_location] => NA
                            [client_id] => 1
                            [site_status_id] => 1
                            [_joinData] => Array
                                (
                                    [id] => 15
                                    [login_id] => 14
                                    [site_id] => 10
                                )

                        )

                )

        )

ВОПРОСЫ: -

  1. Почему нет опции 'joinType' для hasMany и BelongsToMany ассоциации?
  2. Как я могу архивировать то же самое?Я хочу получить только 1-й, а не 0-й
...