1
我試圖用智能模式重寫我的查詢,使用Yii2的功能。如何在Yii2上連接來自不同表格的2列
原件及工作方法是:
public function getApartamentos() {
$query = Apartamento::findBySql('select apartamento.id as id, CONCAT(apartamento.numero, \' \', torre.sigla, \' (\', torre.nome,
\')\') as numero_completo from apartamento left join torre on
apartamento.torre_fk = torre.id') ;
return ArrayHelper::map($query->asArray()->all(),'id','numero_completo');
}
所以,我試圖改變上述方法上:
public function getApartamentos() {
$query = Apartamento::find()
->joinWith('torreFk')
->select(['apid'=>'apartamento.id','numeroap'=>'CONCAT(apartamento.numero,
\' \', torre.sigla, \' (\', torre.nome, \')\')']);
return ArrayHelper::map($query->asArray()->all(),'apid','numeroap');
}
但是,當我做到這一點,我收到一些錯誤:
PHP Notice – yii\base\ErrorException
Undefined index: id
in <?=$form->field($model, 'apartamento_fk')->dropDownList(Apartamento::getApartamentos()) ?>
任何人都可以幫助我嗎?謝謝!