我有一个控制器,我已经写了一个函数来从表中获取值。并将其传递给数据提供者。
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表中。这涉及两个表。我如何在上面写这个查询?
答案 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.html和http://www.yiiframework.com/doc-2.0/yii-data-arraydataprovider.html
Goodluck,玩得开心!