Неопределенная переменная: dataProvider в сетке yii2 kartik

Я пытаюсь узнать о представлении сетки kartik, и у меня возникают проблемы с dataProvider.

Код контроллера

это полный код контроллера (но не весь, я просто показываю код до кода, содержащего dataProvider, который я спросил, почему он не определен)

class SiteController extends Controller {
 public function actions()
 {
return [
    'error' => [
        'class' => 'yii\web\ErrorAction',
    ],
    'captcha' => [
        'class' => 'yii\captcha\CaptchaAction',
        'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
    ],
];
}


public function actionIndex()
{
if (!Yii::$app->user->isGuest){
if (Yii::$app->user->identity->akses === '1'){
    return $this->render('knpr/knpr-home');
} else if (Yii::$app->user->identity->akses === '2') {
    return $this->render('prov/prov-home');
} else if (Yii::$app->user->identity->akses === '3') {
    return $this->render('kabkot/kabkot-home');
} else if (Yii::$app->user->identity->akses === '4') {
    return $this->render('multiregional/multiregional-home');
}
  }
//return $this->render('home-knpr');
}


public function actionLogin()
{   $this->layout = 'main-login';
if (!Yii::$app->user->isGuest) {
    return $this->goHome();
   }

  $model = new LoginForm();
  if ($model->load(Yii::$app->request->post()) && $model->login()) {
    return $this->goBack();
   }
return $this->render('login', [
    'model' => $model,
]);
  }

public function actionLogout()
{
Yii::$app->user->logout();
return $this->redirect(['site/login'])->send();
 }

public function actionKnprHome()
 {
    $totalCount = Yii::$app->db->createCommand('SELECT COUNT(*) FROM m_admin') -> queryScalar();

$dataProvider = new SqlDataProvider([
    'db'  => Yii::$app->db,
    'sql' => 'SELECT * FROM m_admin',
    'totalCount' => $totalCount,
    'sort' => false,
    'pagination' => [
        'pageSize' => $count,
    ],
]);

return $this->render('knpr/knpr-home', array('dataProvider' => $dataProvider));

  }

Просмотреть код

<?php echo GridView::widget([ 
'dataProvider' => $dataProvider,
'showOnEmpty' => true,
'emptyCell' => true,
'column' => [
    'username',
    'password',
    'akses',
    'kode_daerah',
    'authKey',
    'id',
    ],
'pjax' => true,
]);   ?>

и вывод:

Неопределенная переменная: dataProvider

ошибка: неопределенная переменная: dataProvider

подробнее

подробнее

подробнее

Пожалуйста, предложите.


person Elsa Maudina    schedule 29.05.2018    source источник
comment
Пожалуйста, укажите, какая ошибка/проблема у вас возникла при просмотре сетки kartik.   -  person Mikhail Kholodkov    schedule 29.05.2018
comment
он продолжает говорить, что поставщик данных не определен   -  person Elsa Maudina    schedule 29.05.2018
comment
глядя на ваш код, невозможно что-либо предложить, ваш код выглядит нормально, предоставьте более подробную информацию, может быть больше кода из контроллера и просмотра файла и строки, в которой вы получаете сообщение об ошибке   -  person Ash-b    schedule 29.05.2018
comment
Почему в строке render вы указываете имя контроллера? это должно быть только имя файла представления.   -  person Ziki    schedule 29.05.2018
comment
куда? его имя файла просмотра и каталог   -  person Elsa Maudina    schedule 29.05.2018
comment
каков ваш URL-адрес действия?   -  person Ash-b    schedule 29.05.2018
comment
я ... не знаю, представление будет отображаться, когда оно нажмет это = if (Yii::$app-›user-›identity-›akses === '1'){ return $this-›render( 'кнпр/кнпр-дом');   -  person Elsa Maudina    schedule 29.05.2018
comment
но я не знаю, как вызвать действие «общедоступная функция actionKnprHome()» для отображения   -  person Elsa Maudina    schedule 29.05.2018
comment
Использовать перенаправление: return $this->redirect('site/knpr-home');   -  person Ziki    schedule 29.05.2018
comment
где я должен положить его? это все еще не работает   -  person Elsa Maudina    schedule 29.05.2018
comment
Вместо этой строки: return $this->render('knpr/knpr-home');   -  person Ziki    schedule 29.05.2018
comment
все еще не работает   -  person Elsa Maudina    schedule 29.05.2018
comment
Все та же ошибка? Вы можете отредактировать свой пост с полной трассировкой ошибок?   -  person Ziki    schedule 29.05.2018
comment
все так же, я покажу вам скриншот   -  person Elsa Maudina    schedule 29.05.2018
comment
Кажется, вы не изменили правильную строку: SiteController строка 65 изменить на: return $this->redirect(['site/knpr-home']);   -  person Ziki    schedule 29.05.2018
comment
о, извините, я ввел не ту строку, я сообщу, если появится какая-либо ошибка   -  person Elsa Maudina    schedule 29.05.2018


Ответы (1)


Проблема решена, я изменил строку 65 на return $this->redirect(['site/knpr-home']);

и удалил всю переменную столбца на сайте просмотра

<div>
<?php echo GridView::widget([ 
'dataProvider' => $dataProvider,
'showOnEmpty' => true,
'emptyCell' => true,

'pjax' => true,
]); ?> </div>
person Elsa Maudina    schedule 29.05.2018