yii mutliple объединяет не все столбцы

У меня есть следующая команда create:

$query = Yii::app()->db->createCommand()
->select('q.*, qcia.value, qcim.value')
->from('quotas q')
->leftjoin('quota_company_item_activations qcia', 'qcia.quota_id = q.id')
->leftjoin('quota_company_item_mrcs qcim', 'qcim.quota_id = q.id')
->where('q.id=:id', array(':id' => $quota_id))
->queryRow();

В результирующем массиве у меня должно быть дважды поле значения, но массив выглядит так:

[id] => 3
[name] => September Sales Quotas
[company_id] => 1
[user_id] => 22
[datestart] => 2014-09-01
[dateend] => 2014-09-30
[created] => 2014-09-30 21:12:44
[modified] => 0000-00-00 00:00:00
[value] => 60.00

Почему он получает только одно значение (из последнего левого соединения)?

1

Решение

Вам нужно использовать псевдоним для одного из значений. Массивы php индексируются ключами. Первое значение перезаписывается вторым значением.
с чем-то вроде этого

$query = Yii::app()->db->createCommand()
->select('q.*, qcia.value avalue, qcim.value mvalue')
->from('quotas q')
->leftjoin('quota_company_item_activations qcia', 'qcia.quota_id = q.id')
->leftjoin('quota_company_item_mrcs qcim', 'qcim.quota_id = q.id')
->where('q.id=:id', array(':id' => $quota_id))
->queryRow();
1

Другие решения

Попробуйте использовать псевдоним, чтобы вы могли получить разные value колонны.

$query = Yii::app()->db->createCommand()
->select('q.*, qcia.value AS qcia_value, qcim.value AS qcim_value')
->from('quotas q')
->leftjoin('quota_company_item_activations qcia', 'qcia.quota_id = q.id')
->leftjoin('quota_company_item_mrcs qcim', 'qcim.quota_id = q.id')
->where('q.id=:id', array(':id' => $quota_id))
->queryRow();

var_dump($query);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector