Mit Yii2 mit array von Daten und ein Gridview mit sorting und filter

Ich habe ein array

$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]"),     
    ];

Dataprovider :

$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 machen Sie mir zeigen Sie das array in ein raster und die Möglichkeit zu Sortieren beim Klick auf den Spalten. Das ist ok.

Aber wie man Filter verwenden ?

Habe ich versucht mit dem 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.
Habe ich filter mir das Objekt je nach der $get-Wert ?

  • Was meinst du mit "es funktioniert nicht"? Die such-Eingaben werden nicht angezeigt?
  • Was ich damit meine, nicht funktioniert ist, dass der Eingang zeigt nur wenn ich den filter wie in der Stichprobe. 'filter' => '<input class="form-control" name="filteremail" value="da" type="text">', 'Wert' => 'E-Mail', Aber die Daten werden nicht gefiltert.
InformationsquelleAutor Ydakilux | 2015-02-10
Schreibe einen Kommentar