从表中获取数据并在yii 2.0中显示gridview

时间:2016-07-15 14:26:40

标签: php arrays gridview yii2 yii2-advanced-app

我有一个控制器,我已经写了一个函数来从表中获取值。并将其传递给数据提供者。

 public function actionBorrower()
{

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

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

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

现在在视图文件中我想在网格视图中显示它,数据库中的表有许多用户我想要获取所有这些并逐个显示它。

<?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为&#34; 1&#34;在USER_TYPE表中。这涉及两个表。我如何在上面写这个查询?

1 个答案:

答案 0 :(得分:2)

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

user

或者,如果您想在创建dataprovider之前获取所有ArrayDataProvider,则应使用$provider = new ArrayDataProvider([ 'allModels' => User::find()->all(), 'pagination' => false, ]);

 config.Routes.MapHttpRoute(
        name: "CustomFilter",
        routeTemplate: "api/{controller}/{begin}/{pageSize}",
        defaults: new
        {
            begin = RouteParameter.Optional,
            take = RouteParameter.Optional
        }
    );

请参阅文档:http://www.yiiframework.com/doc-2.0/yii-data-activedataprovider.htmlhttp://www.yiiframework.com/doc-2.0/yii-data-arraydataprovider.html

Goodluck,玩得开心!