显示在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());
}
],