Значение второй таблицы не отображается при использовании CActiveDataProvider и CdbCriteria, используемых вместе в yii

У меня есть две таблицы, имена таблиц и поля перечислены ниже

company(tbl_id,sales_id,user_id,assigned_on)
users(user_id,user_name)

Я хочу выполнить следующий запрос

SELECT assigned_on,u.user_name FROM company c LEFT JOIN users u ON c.user_id=u.user_id WHERE c.`sales_id`=2

У меня есть одна модель Company.php, я определил следующее отношение

 public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'company'=>array(self::HAS_MANY,'Users',array('user_id'=>'user_id'))

);
}

и в соответствующей функции я написал код

$criteria=new CDbCriteria;
$criteria->select   =   "user_id,assigned_on";
$criteria->compare('t.sales_id',$salePersonID);
$criteria->with=array(
'company'
);
$criteria->together = true;
$provider   =    new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array('pageSize'=>'25')
));
return $provider;

Я передал провайдер для просмотра В файле просмотра я написал код

<?php $this->widget('bootstrap.widgets.TbGridView',array(
'type'=>'striped bordered condensed',
'id'=>'users-grid',
'dataProvider'=>$provider,
'template'=>"<table style='width: 100%'><tr><td>{pager}</td><td style='vertical-align:bottom;text-align: right;'>{summary}</td></table>\n{items}\n{pager}",
'columns'=>array(
array(
'name'=>'assigned_on',
'header'=>'Assigned On',
'htmlOptions'=>array('class'=>'cname'),
),
array(
'name'=>'user_name',
'value'=>'$data->company->user_name',
'header'=>'Contact Person',
'htmlOptions'=>array('class'=>'cname'),
)
)
));

Но значения поля второй таблицы (имя_пользователя) не отображаются в списке. Я много искал и пробовал много вариантов. Может кто-нибудь, пожалуйста, дайте мне знать решение этой проблемы
заранее спасибо

0

Решение

'value'=>'$data->company->user_name',

должно быть

'value'=>'$data->company->user->user_name',

Компания не имеет имя_пользователя.

0

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

Других решений пока нет …

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