我在视图上有以下代码,但是当我从 GridView::widget 调用$dataProvider时,我收到了 null。查询可以直接在数据库上正常工作。可能出了什么问题?谢谢。
//SQL Statement
$dataProvider = new SqlDataProvider([
'sql' => 'SELECT a.att1,
b.att2,
a.att3
FROM table1 a,
table2 b
WHERE b.id = a.user_id
ORDER BY a.att3 ASC',
]);
//GridView
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'Att1',
'Att2',
'Att3',
],
]);
您应该对 sql 和网格视图列使用相同的名称
$dataProvider = new SqlDataProvider([
'sql' => 'SELECT a.att1 Att1,
b.att2 Att2,
a.att3 Att3
FROM table1 a,
table2 b
WHERE b.id = a.user_id
ORDER BY a.att3 ASC',
]);