Postgresql 下拉列表不同值yii2

Postgresql 下拉列表不同值yii2,postgresql,yii2,dropdown,Postgresql,Yii2,Dropdown,我试图从我的postgres数据库中进行下拉,数据库如下 | id_provinsi | id_waktu | id_kbli | | 1000 | 12007 | A | | 1000 | 12007 | A1 | | 1000 | 12007 | A2 | | 1000 | 12008 | A | | 1000 | 12008 |

我试图从我的postgres数据库中进行下拉,数据库如下

| id_provinsi | id_waktu |  id_kbli |
|     1000    |   12007  |     A    |
|     1000    |   12007  |     A1   |
|     1000    |   12007  |     A2   |
|     1000    |   12008  |     A    |
|     1000    |   12008  |     A1   |
|     1000    |   12008  |     A2   |
|     1100    |   12007  |     A    |
|     1100    |   12007  |     A1   |
|     1100    |   12007  |     A2   |
|     1100    |   12008  |     A    |
|     1100    |   12008  |     A1   |
|     1100    |   12008  |     A2   |
| 12007 |
| 12008 |
我想得到一个下拉列表,显示像这样的
id\u waktu

| id_provinsi | id_waktu |  id_kbli |
|     1000    |   12007  |     A    |
|     1000    |   12007  |     A1   |
|     1000    |   12007  |     A2   |
|     1000    |   12008  |     A    |
|     1000    |   12008  |     A1   |
|     1000    |   12008  |     A2   |
|     1100    |   12007  |     A    |
|     1100    |   12007  |     A1   |
|     1100    |   12007  |     A2   |
|     1100    |   12008  |     A    |
|     1100    |   12008  |     A1   |
|     1100    |   12008  |     A2   |
| 12007 |
| 12008 |
我的代码:

$pdrb=PdrbProv::find()->groupBy('id_waktu')->all();
$listData=ArrayHelper::map($pdrb,'id_provinsi','id_waktu');

echo $form->field($model, 'id_waktu')->dropDownList(
    $listData,
    ['prompt'=>'Select...']
    );
但我得到了以下错误:

QLSTATE[42803]: Grouping error: 7 ERROR: column "pdrb_prov.id_provinsi" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT * FROM "pdrb_prov" GROUP BY "id_waktu"
^
The SQL being executed was: SELECT * FROM "pdrb_prov" GROUP BY "id_waktu"
我该怎么办?有人能帮忙吗?谢谢

尝试这些查询

$pdrb = PdrbProv::find()->select(['id_provinsi','id_waktu'])->distinct()->all();
$pdrb = PdrbProv::find()
           ->select('id_provinsi, id_waktu')
           ->groupBy('id_waktu')
           ->all();

谢谢它起作用了。但我似乎无法响应$pdrb。任何选项都无法响应如何执行此操作。因为它以数组的形式给出结果。使用print_r(),那么我应该怎么做才能从中创建一个下拉列表呢?您可以使用[kartik-v/yii2-widget-select2]进行这些操作。虽然这些代码可能解决了问题的核心,但请提供一些上下文或解释。