2015-12-25 4 views
1

Я застрял в течение трех часов, и я не могу найти решение, я хочу показать только имя тех пакетов, которые находятся в таблице business_package в моем выпадающем меню. Мой SQL-запрос, который отлично работает, я не знаю, как писать в cdbcriteria, я пытался писать в cdbcriteria, но каждый раз получаю ошибку. Ниже приведен мой запрос sql.Как написать этот запрос соединения в cdbcriteria?

select package.id 
from package 
join business_package on package.id = business_package.package_id 

Я хочу использовать результаты в приведенном ниже раскрывающемся списке.

$this->widget('ext.select2.ESelect2',array(
    'name'=>'ReviewPackage[Package_id]', 
    'data'=>CHtml::listData(Package::model()->findAll($criteria), 'id', 'package_name'), 
    //the whole available list of those package which are in business package table. 
    'htmlOptions'=>array(
     'placeholder'=>' search Business name?', 
    //'options'=>$options, //the selected values 
    // 'multiple'=>'multiple', 
    'style'=>'width:530px', 
), 
)); 

ответ

2

См http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder

Нечто подобное должно сделать это:

$criteria = new CDbCriteria; 
$criteria->alias = 'package'; 
$criteria->select = 'package.id'; 
$criteria->join='LEFT JOIN business_package ON business_package.package_id=package.id'; 
+0

работал отлично, как призрак –

+0

мне было интересно, что писать в псевдониме. –

+0

Если я не ошибаюсь, Yii применил бы псевдоним к вашей «первичной» таблице, и это «t», но по разным причинам вы можете явно задать псевдоним таблицы. В этом случае просто для удобства чтения. – user5542121

Смежные вопросы