显示在DetailView yii2中有多个关系数据

显示在DetailView yii2中有多个关系数据,yii2,has-many,detailsview,Yii2,Has Many,Detailsview,我想知道是否可以在detailview中显示一对多关系数据。例如,用户可以注册多封电子邮件。因此,是否可以在detailview中显示一个用户注册的所有电子邮件 我试过下面的方法,但不起作用 <?= DetailView::widget([ 'model' => $model, 'attributes' => [ 'id', 'username', 'firstname', 'lastna

我想知道是否可以在
detailview
中显示一对多关系数据。例如,用户可以注册多封电子邮件。因此,是否可以在
detailview
中显示一个用户注册的所有电子邮件

我试过下面的方法,但不起作用

<?= DetailView::widget([
    'model'      => $model,
    'attributes' => [
        'id',
        'username',
        'firstname',
        'lastname',
        'location',
        'is_active:boolean',
        [
            'label' => 'Emails',
            'value' => ArrayHelper::map(
                UserEmails::find()
                    ->where(['user_id'=>$model->id])
                    ->orderBy('id')
                    ->asArray()
                    ->all(),
                'id', 'email')
        ],
    ],
]) ?>


我得到了错误,但我想知道这是可能的?我做错了什么???

在DetailView中,项的值只能是一个值。所以可以预先填充该值

$email = implode(',',UserEmails::find()->select('email')->where(['user_id'=>$model->id])->orderBy('id')->asArray()->all())
    <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            'username',
            'firstname',
            'lastname',
            'location',
            'is_active:boolean',
            [
                'label' => 'Emails',
                'value' => $emails
            ],

        ],
    ]) ?>
$email=introde(',',UserEmails::find()->select('email')->where(['user\u id'=>$model->id])->orderBy('id')->asArray()->all())

如果您的模型包含
hasMany()
函数,例如
getCategories()
或其他任何函数,您只需为DetailView指定最简单的代码即可。此外,我正在使用clojure

[
    'attribute' => 'categories',
    'value' => function ($model)
    {
        return implode(', ', $model->getCategories()->select('label')->column());
    }
],