我是yii2的新手。我有三张桌子吗? s(id,firstName,lastName)
,p(id,name)
和sp(sid,pid,qty)
。 s模型中有所有关系(由gii创建)。
我想通过活动记录在gridview中显示关注查询:
select s.firstName,s.lastName, sp.qty from s join sp on s.s#=sp.s#
,它返回以下结果:
firstname1 lastname1 qty1
firstname1 lastname1 qty2
firstname2 lastname2 qty3
由于这个原因,我写了以下代码。
代码:
class SController extends Controller
{
public function actionIndex()
{
$dataProvider = new ActiveDataProvider([
'query' =>s::find(),
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
}
并在索引视图中:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'firstName',
'lastName',
[
'attribute' => 'quantity',
'value' => function ($data) {
if ($data->sps) {
return implode(\yii\helpers\ArrayHelper::map($data->sps, 'id','qty'));
}
},
],
['class' => 'yii\grid\ActionColumn'],
],
]);
但它返回跟随结果:
firstname1 lastname1 qty1qty2
firstname2 lastname2 qty3
我不知道是什么问题?