从 table 获取数据并将其显示在 yii 2.0 中的 gridview

fetch the data from table and display it the gridview in yii 2.0

我有一个控制器,我编写了一个函数来从 table 获取值。我将它传递给数据提供者。

 public function actionBorrower()
{

   $user = User::find()->all();

   $dataProvider= new ActiveDataProvider([
    'user' => $user,
    'pagination' => false,
    ]);

    return $this->render('borrower', [
   'dataProvider'=>$dataProvider]);
}

现在在视图文件中,我想在网格视图中显示它,数据库中的 table 有很多用户,我想将它们全部获取并一一显示。

<?php

use yii\helpers\Html;
use yii\grid\GridView;

$this->title = 'Users';
$this->params['breadcrumbs'][] = $this->title;
?>
<section style="margin-top:60px;display:inline-block;height:640px;width:100%;padding:15px 0 0 15px;" class="wrapper">
<div class="user-role-index">

    <h1><?= Html::encode($this->title) ?></h1>

    <?= GridView::widget([
        'dataProvider' => $dataProvider,

        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'id',
            'user_id',
            //'role_id',


            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>

</div>
</section>

我不知道我哪里出错了,但是出现了一些错误,比如 - 设置未知 属性: yii\data\ActiveDataProvider::user

我是 yii2 的新手,请任何人帮助我解决这个问题..谢谢。

我想从 USER Table 获取所有数据,其中 user_type 是 USER_TYPE Table 中的“1”。两个 tables 参与其中。我如何在上面写这个查询??

您应该将您的定义 activedataprovider 更改为:

$dataProvider= new ActiveDataProvider([
    'query' => User::find(),
    'pagination' => false,
]);

或者如果你想在创建数据提供者之前获得所有user,你应该使用ArrayDataProvider

$provider = new ArrayDataProvider([
    'allModels' => User::find()->all(),
    'pagination' => false,
]);

参考文档:http://www.yiiframework.com/doc-2.0/yii-data-activedataprovider.html and http://www.yiiframework.com/doc-2.0/yii-data-arraydataprovider.html

祝你好运,玩得开心!