Ich habe ein ArrayVerwendung Yii2 mit Anordnung von Daten und mit einem Gridview Sortier- und Filter
$resultData = [
array("id"=>1,"name"=>"Cyrus","email"=>"[email protected]"),
array("id"=>2,"name"=>"Justin","email"=>"[email protected]"),
array("id"=>3,"name"=>"Mason","email"=>"[email protected]"),
array("id"=>4,"name"=>"Fulton","email"=>"[email protected]"),
array("id"=>5,"name"=>"Neville","email"=>"[email protected]"),
array("id"=>6,"name"=>"Jasper","email"=>"[email protected]"),
array("id"=>7,"name"=>"Neville","email"=>"[email protected]"),
array("id"=>8,"name"=>"Neville","email"=>"[email protected]"),
array("id"=>9,"name"=>"Ronan","email"=>"[email protected]"),
array("id"=>10,"name"=>"Raphael","email"=>"[email protected]"),
];
ein Datenprovider:
$dataProvider = new ArrayDataProvider([
'key'=>'id',
'allModels' => $resultData,
'sort' => [
'attributes' => ['id', 'name', 'email'],
],
]);
Und das Gridview:
echo GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
[
'attribute' => 'name',
'value' => 'name',
],
[
"attribute" => "email",
'value' => 'email',
]
]
]);
Wie ist, der Code macht mich das Array in einem Raster anzeigen, und die Möglichkeit, es beim Klicken auf Spalten zu sortieren. Das ist ok.
Aber wie man filtert?
Ich habe versucht, mit den folgenden:
$searchModel = ['id' => null, 'name' => '', 'email' => ''];
echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
[
'attribute' => 'name',
'value' => 'name',
],
[
"attribute" => "email",
'filter' => '<input class="form-control" name="filteremail" value="da" type="text">',
'value' => 'email',
]
]
]);
Aber es funktioniert nicht. Muss ich das Objekt abhängig vom $ get-Wert filtern?
Was meinst du mit "es funktioniert nicht"? Die Sucheingaben werden nicht angezeigt? – arogachev
Was ich meine, wenn ich nicht arbeite ist, dass die Eingabe nur angezeigt wird, wenn ich den Filter wie im Sample anlege. 'filter' => '', 'wert' => 'email', Aber die Daten werden nicht gefiltert. – Ydakilux