php - 使用 Yii2 在 Gridview 中显示相关数据

标签 php mysql gridview yii2

一段时间以来,我一直在努力处理相关模型数据,但似乎无法找出问题所在,我只能使用一个非常简单的示例。

我有两个模型 Dog 和 Owner,它们具有以下关系。

所有者:

public function getDogs()
{
    return $this->hasMany(Dog::className(), ['owner_id' => 'id']);
}

狗:

public function getOwner()
{
    return $this->hasOne(Owner::className(), ['id' => 'owner_id']);
}

作为一个简单的测试,我想让狗从所有者 View 的索引页面中的 GridView 中消失 这是我在 Owner View 中的 index.php

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        'name',
        [       
            'attribute' => 'type',
            'value' => 'dog.type',
        ],

        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>

我一定是遗漏了一些基本的东西?

最佳答案

你不能像这样显示多个相关项目,但你可以简单地使用回调,例如:

[
    'label' => 'Dog types',
    'value' => function($model) {
        return join(', ', yii\helpers\ArrayHelper::map($model->dogs, 'id', 'type'));
    },
],

关于php - 使用 Yii2 在 Gridview 中显示相关数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965574/

相关文章:

mysql - 如何自动添加数据

mysql - SQL "group by"仅返回第一行 - 之二

jquery - 为每个指定字符添加换行符的最佳方法? (asp.net)

javascript - 如何在多页面 PHP 应用程序中集成 Webpack

php - 从下拉列表中获取默认值并显示表格

php - jQuery定位,PHP获取URL,图片总是加载不出来

javascript - 即使字段为空也会执行mysql查询

asp.net - 从选项卡容器中的数据绑定(bind) GridView 丢失更新面板触发器

c# - 传递GridView模板字段<asp :LinkButton control data to javascript function in my . aspx页面

php - 使用 PHP 从数据库上传、预览、删除图像和文档