DropDownList in una GridView

Ciao,

nella GridView della mia pagina index vorrei inserire, in una colonna, una DropDownList per filtrare i dati.

La DropDownList è popolata dai record con campi ‘nome’+‘Cognome’ della tabella user.

Ho usato questo codice che funziona in altre pagine tranne che nella GridView.

Come posso risolvere?

Grazie

public function getFullName()

{

return $this->nome . ’ ’ . $this->cognome;

}

<?= GridView::widget([

‘dataProvider’ => $dataProvider,

‘filterModel’ => $searchModel,

‘columns’ => [

[‘class’ => ‘yii\grid\SerialColumn’],

[

‘attribute’ => ‘Utente’,

‘value’ => ‘id_utente’,

‘filter’ => Html::activeDropDownList($searchModel, ‘id_user’, ArrayHelper::map(\app\models\user::find()->asArray()->all(), ‘id_user’,‘fullName’),[‘class’=>‘form-control’,‘prompt’ => ‘---- Seleziona ----’]),

],

[‘class’ => ‘yii\grid\ActionColumn’],

],

]); ?>

Che cosa visualizza:




var_dump(\app\models\user::find()->asArray()->all());



?

Estraggo tutti gli utenti dalla tabella User

E controllando il contenuto di




var_dump( ArrayHelper::map(\app\models\user::find()->asArray()->all(), 'id_user','fullName') )



E’ valorizzato? O è vuoto?

no no è valorizzato, ho l’impressione che questa sintassi non viene interpretata quando si trova all’interno della GridView. Infatti se la stessa sintassi la metto nel form inlla pagina details funziona

Funziona anche nella GridView.

Nella riga del filtro con il menù a discesa, il menù a discesa si visualizza o non si visualizza proprio?

visualizzo una activeDropDownList vuota senza nessun elemento dentro <_<

Quindi il problema è solo nei valori passati, cioè qui:




ArrayHelper::map(\app\models\user::find()->asArray()->all(), 'id_user','fullName')



Prova senza asArray(), ovvero;




ArrayHelper::map(\app\models\user::find()->all(), 'id_user','fullName')



OK funziona

Grazieeee