yii2 active record не выводит ничего в результате, когда обычный SQL дает результат

195
05 июля 2018, 19:50

Всем привет. Есть следующий запрос:

$partners = \common\models\Friends::find()
    ->where(['friends.user_id' => $user->id])
    ->join('INNER JOIN', 'user', 'friends.friend_id = user.id')
    ->select('user.*')
    ->all();

Он полностью эквивалентен обычному SQL:

SELECT `user`.* FROM `friends` 
  INNER JOIN `user` ON friends.friend_id = user.id 
  WHERE `friends`.`user_id`=24

Если я делаю второй запрос прямиком в БД, то результат выводится адекватно. Но дамп $partners дает пустой результат:

array(1) {
  [0]=>
  object(common\models\Friends)#146 (10) {
    ["_attributes":"yii\db\BaseActiveRecord":private]=>
    array(0) {
    }
    ["_oldAttributes":"yii\db\BaseActiveRecord":private]=>
    array(0) {
    }
    ["_related":"yii\db\BaseActiveRecord":private]=>
    array(0) {
    }
    ["_relationsDependencies":"yii\db\BaseActiveRecord":private]=>
    array(0) {
    }
    ["_errors":"yii\base\Model":private]=>
    NULL
    ["_validators":"yii\base\Model":private]=>
    NULL
    ["_scenario":"yii\base\Model":private]=>
    string(7) "default"
    ["_events":"yii\base\Component":private]=>
    array(0) {
    }
    ["_eventWildcards":"yii\base\Component":private]=>
    array(0) {
    }
    ["_behaviors":"yii\base\Component":private]=>
    array(0) {
    }
  }
} 

Почему в yii я получаю отличный от SQL результат?

Answer 1

Могу предположить, что должно быть как-то так

$partners = \common\models\Users::find()
    ->join('INNER JOIN', 'friends', 'friends.friend_id = user.id')
    ->where(['friends.user_id' => $user->id])
    ->all();

А вообще, если я правильно понимаю, у пользователя вытаскивается его друзья, я думаю, лучше это засунуть в метод модели Users и организовать код через $this->hasMany

READ ALSO
Вывести значения таксономии

Вывести значения таксономии

Подскажите, пожалуйста, что применить?

205
Помогите исправить Warning: Illegal string offset 'TEXT'

Помогите исправить Warning: Illegal string offset 'TEXT'

помогите разобраться, пожалуйста, на страницах почти везде данное сообщениеWarning: Illegal string offset 'TEXT' in "/bitrix/

237
Как изменить label в input при выборе radio в предыдущем form-group

Как изменить label в input при выборе radio в предыдущем form-group

Это часть чекаута в опенкарте Нужно при выборе групы покупателя изменить название следующего поля для ввода данных Чистый CSS почему то не работает...

174
mbstring vs string

mbstring vs string

Вопрос таков: почему разработчики PHP не изменили все функции работы со строками на многобайтовую, почему substr не сделают аналогом mb_substr и тд

211