kotcich
@kotcich
Я скучный.

Как сделать select нужной колонки из связанной таблицы в AR Yii2?

$arr = Menu::find()->with([
                'link' => function ($query) {
                    $query->select('menu_id, role_id');
                }
            ])->asArray()->all();


Это код связи в модели:
public function getLink()
    {
        return $this->hasMany(Menu_role::className(), ['menu_id' => 'id']);
    }


Проблема данного примера в том, что такой метод обязывает тебя селектить ключ, по которому была сделана связь (здесь это menu_id).
То есть ты вроде бы и не получаешь условно все 6 колонок таблицы, но всегда должен получать ключ, такая вот полумера.

Может быть есть какой то другой способ селекта в этом случаи или можно данный код как то видоизменить?
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
$arr = Menu::find()
		->with(['link'])
		->select(['menu_role.menu_id', 'menu_role.role_id'])
		->asArray()
		->all();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы