GridView的使用问题 [ 2.0 版本 ]
这样的操作本来是可以正常显示的
public function actionIndex(){
$searchModel = new OrderSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
<?= GridView::widget([
'dataProvider' => $dataProvider,
……
]);
?>
然后改成如下:
关联函数:
public function getOrders(){
return $this->hasMany(Order::className(), ['name' => 'username'])->asArray();
}
public function actionIndex()
{
$member=Member::find()->where(['username'=>'test'])->one();
$orders=$member->orders;
return $this->render('index', [
'dataProvider' => $orders,
]);
}
就提示显示不了了,请问
这个$orders 该怎么写才可以使用GridView
共 3 个回答
-
dataProvider 也是可以自己定义查询语句取自己想要的数据
举个例子:
$query = Wlborder::find()->orderBy('wo.create_time DESC'); $query->from(Wlborder::tableName() . ' as wo'); $query->joinWith('xx'); $query->joinWith('ss'); $query->joinWith('xxsddd'); //$query->joinWith('wlborder'); $query->select('wo.*,wlbOrderItem.order_sub_code,wlbSellerSubscription.service_alias,item_name,plan_quantity'); $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => 10, ], ]);
recminy 觉得很赞 -
显示GridView需要一个ActiveDataProvider对象返回的数据格式,而你这里返回的是数组
看看这个http://blog.csdn.net/cjqh_hao/article/details/48742423
okokad
注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
最后登录:2017-07-01
在线时长:49小时26分
- 粉丝12
- 金钱25
- 威望80
- 积分1315