2016-03-25 8 views
0

Benötigen Sie Hilfe in undefined Variable: DataProvider in yii2 Ich habe Kartik Gridview-Erweiterung installiert. Ich bin neu in YII2. versuchen, das Gitter zu bauen. Bitte helfen.Nicht definierte Variable: DataProvider in yii2

Erste Folgende Fehler
PHP Notice - yii \ base \ Error Undefined variable: Datenprovider

Hier ist mein Controller-Code

echo GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => $gridColumns, 
     'containerOptions' => ['style'=>'overflow: auto'], // only set when $responsive = false 
     'beforeHeader'=>[ 
      [ 
       'columns'=>[ 
        ['content'=>'Header Before 1', 'options'=>['colspan'=>4, 'class'=>'text-center warning']], 
        ['content'=>'Header Before 2', 'options'=>['colspan'=>4, 'class'=>'text-center warning']], 
        ['content'=>'Header Before 3', 'options'=>['colspan'=>3, 'class'=>'text-center warning']], 
       ], 
       'options'=>['class'=>'skip-export'] // remove this row from export 
      ] 
     ], 
     'toolbar' => [ 
      ['content'=> 
       Html::button('<i class="glyphicon glyphicon-plus"></i>', ['type'=>'button', 'title'=>Yii::t('kvgrid', 'Add Book'), 'class'=>'btn btn-success', 'onclick'=>'alert("This will launch the book creation form.\n\nDisabled for this demo!");']) . ' '. 
       Html::a('<i class="glyphicon glyphicon-repeat"></i>', ['grid-demo'], ['data-pjax'=>0, 'class' => 'btn btn-default', 'title'=>Yii::t('kvgrid', 'Reset Grid')]) 
      ], 
      '{export}', 
      '{toggleData}' 
     ], 
     'pjax' => true, 
     'bordered' => true, 
     'striped' => false, 
     'condensed' => false, 
     'responsive' => true, 
     'hover' => true, 
     'floatHeader' => true, 
     'floatHeaderOptions' => ['scrollingTop' => $scrollingTop], 
     'showPageSummary' => true, 
     'panel' => [ 
      'type' => GridView::TYPE_PRIMARY 
     ], 
    ]); 
+0

posten Sie Ihren vollständigen Code. – GAMITG

+0

Sie müssen * den Code bearbeiten, den Sie vergessen haben, in Ihre Frage aufzunehmen, nicht als Antwort. Dafür kann ich mir nicht genug vorstellen. – Flexo

+0

@ Flexo ♦: Ich habe gerade begonnen, stackoverflow zu verwenden. Ich war mit den Regeln nicht vertraut. Jetzt habe ich alles über das Posten von Fragen und Antworten, das Bearbeiten usw. gelernt. Aber leider bin ich blockiert und kann jetzt keine neuen Fragen mehr posten und bekomme folgenden Fehler. Sie haben Ihr Fragenlimit erreicht Entschuldigung, wir akzeptieren keine Fragen mehr von diesem Konto. Weitere Informationen erhalten Sie in der Hilfe. können Sie bitte helfen, wie man aus diesem Verbot herauskommt. Ich hatte bereits alle meine Fragen bearbeitet. –

Antwort

0

In Ihrem Controller Sie alle Variablen passieren müssen, die in der im Hinblick auf die Render-Methode rufen Sie am Ende der erscheinen müssen Controller:

return $this->render('viewName', [ 
    'dataProvider' => $dataProvider, 
    // ... Other fields 
]); 

Oder Sie können compact() wie folgt aufrufen:

return $this->render('viewName', compact('dataProvider')); 

Siehe auch: Yii2 actions

Hoffe, das hilft.

1

Ihre Ansicht erwartet, dass Sie die Datenprovider übergeben Variable in Ihrer Controller-Aktion.

So stellen Sie sicher, dass Sie so etwas in Ihrer Controller-Aktion haben:

return $this->render('index', [ 
    'dataProvider' => $dataProvider, 
]); 
+0

Ich tat dies auch in meinem Controller-Code, aber immer noch "Undefinierte Variable: DataProvider" –

+0

@ vijaynathji Dann müssen Sie uns Ihre Controller-Aktion zeigen –

+0

Bei welcher URL erhalten Sie diesen Fehler? Sind Sie sicher, dass Sie die richtigen Controller/View-Dateien bearbeiten? – ttdijkstra

Verwandte Themen