Я немного расстроен этой проблемой Yii CGridView, и любая помощь или руководство будут высоко оценены.
У меня есть две связанные таблицы с магазинами (shop_id primary) и контактами (shop_id Foreign), так что в одном магазине может быть несколько контактов. Я использую CGridview для извлечения записей и сортировки, и моя функция отношения в модели магазинов выглядит примерно так:
'shopscontact' => array(self::HAS_MANY, 'Shopsmodel', 'shop_id');
В сетке магазина мне нужно отобразить строку магазина с любым из доступных контактов. Моя попытка фильтрации, поиска в Grid работала довольно хорошо, но я застрял в одной очень странной проблеме. В соответствующем столбце сетки не отображается предполагаемое значение.
В файле CGridview я делаю что-то вроде
array(
'name' => 'shopscontact.contact_firstname',
'header' => 'First Name',
'value' => '$data->shopscontact->contact_firstname'
),
для отображения имени контакта. Однако даже при обстоятельствах, когда поиск / сортировка работают (я узнал, проверив связи БД), столбец сетки выходит пустым! :( А когда я делаю var_dump
array(
'name' => 'shopscontact.contact_firstname',
'header' => 'First Name',
'value' => 'var_dump($data->shopscontact)'
),
Дамп отображает значения записей в атрибутах _private следующим образом:
private '_attributes' (CActiveRecord) =>
array
'contact_firstname' => string 'rec1' (length=4)
'contact_lastname' => string 'rec1 lsname' (length=11)
'contact_id' => string '1' (length=1)
<Редактировать:>
Мой код критерия в модели:
$criteria->with = array(
'owner',
'states',
'shopscontacts' => array(
'alias' => 'shopscontacts',
'select' => 'shopscontacts.contact_firstname,shopscontacts.contact_lastname',
'together' => true
)
);
Как получить доступ к значениям в соответствующих столбцах? Пожалуйста помоги! :(