YII2:具有多个主键的下拉列表

时间:2016-06-16 16:31:46

标签: php drop-down-menu yii2

我有多个主键的表。我已经将主键功能放在我的模型中了。

class Block extends \yii\db\ActiveRecord
...
public static function primaryKey()
{
  return [
     'province_id',
     'city_id',
     'area_id',
     'block_id',
  ];
}

这是我搜索ListView的表单

<?php echo $form->field($model, 'block_id')->dropDownList(ArrayHelper::map(Block::find()->all(), 'block_id','name'), ['prompt'=>'Choose Block'])->label(false);?> 

我无法为我的搜索表单获取所有块。我应该如何更改'block_id'以获取下拉列表中的所有块?

提前致谢...

1 个答案:

答案 0 :(得分:0)

经过几次尝试,我放弃使用ActiveRecord并改为使用sql查询。

我的搜索列表视图代码如下所示。

use yii\db\Query;
.....
$connection = \Yii::$app->db;
$sql = $connection ->createCommand('SELECT CONCAT(province_id,".",city_id,".",area_id,".",block_id) AS block_full, name FROM block');
$query = $sql->queryAll();
echo $form->field($model, 'block_id')->dropDownList(ArrayHelper::map($query, 'block_full','name'), ['prompt'=>'Choose Block'])->label(false);

我使用CONCAT在模型中使过滤器更容易。我将使用block_full来为每个主键获取正确的id。