[Yii2] Utilizzo Arraydata provider

Salve a tutti, vi spiego la mia problematica:

con un’api remota leggo i dati dal db, le classi complete non riesco a passarle, quindi restituisco un’array:




	$dataProvider = new SqlDataProvider([

    			'sql' => $sql,

    			'pagination' => false,

    			]);


    	$elencofile_clt = $dataProvider->getModels();

    	

    	   	

    	return $elencofile_clt;

Nella funziona client leggo il dato e lo do in pasto all’arraydataprovider:


$provider = new ArrayDataProvider([

		'allModels' => $dataProvider,

		'pagination' => [

			'pageSize' => 10,

		],

		]);

e poi passo il provider alla gridview:


		    echo GridView::widget([

		        'dataProvider' => $provider,

		        //'filterModel' => $searchModel,

		    	//'layout'=>"{sorter}\n{pager}\n{summary}\n{items}",

		        'columns' => [

		    		[

		    		'class' => 'yii\grid\DataColumn',

					'attribute' => 'Id',

Mi viene restituito quest’errore : Call to a member function getCount() on array.

Come posso ovviare a tutto ciò?

Sinceramente, detto così è fatica a capire quale sia il problema. Ti posso consigliare di seguire questo articolo che secondo me espone molto bene i vari tipi di dataprovider ed il loro utilizzo

La variabile $dataProvider nel controller nel client è un array di oggetti? Ogni oggetto è un’istanza del model in questione?

Esatto, puoi estrarre il model così ad esempio:




foreach ($dataProvider->models as $model) {

    echo "addMarker({$model->lat_field}, {$model->lon_field});";

}