首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2: GridView中生成的Gii属性

Yii2: GridView中生成的Gii属性
EN

Stack Overflow用户
提问于 2015-01-27 19:04:15
回答 2查看 1.1K关注 0票数 0

我有点不明白Yii2属性是如何工作的。如果我有两个具有一对多关系的表(例如传统、文化)(例如,在几种文化中可能存在一个传统),我可以使用Gii生成的代码,并在模型传统中获得类似@property文化型$culture的内容,因此我可以使用(在传统视图索引中):

代码语言:javascript
复制
    <?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        'traditionname',
        'culture.culturename',

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

但是,在餐桌传统、书籍、aux_tradition_book中,多到多的关系又如何呢?Gii会自动生成@property Book[] $books,但是如何在GridView中使用这样的数组来显示一堆引用相同传统的书籍呢?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-27 23:28:04

您可以修改gii来完成此操作,或者只需使用类似于许多到多个关系的内容来修改生成的文件。Display results while joining tables in yii2

确保您设置了热切的加载,而不是懒散加载,因为它将使您的页面非常慢。

票数 0
EN

Stack Overflow用户

发布于 2015-01-28 12:57:10

通过使用Mihai .的Yii2 API参考和解决方案,我最终使用了另一种更短的方法:

代码语言:javascript
复制
use yii\helpers\ArrayHelper;
....
<?= GridView::widget([
   'dataProvider' => $dataProvider,
   'filterModel' => $searchModel,
   'columns' => [
       ['class' => 'yii\grid\SerialColumn'],

       'id',
       'traditionname',
       'culture.culturename',
       [
         'attribute' => 'books',
         'format' => 'raw', //Needed for proper rendering of HTML tags below.
         'value'=>function ($model) {
             return implode('<br/>------<br/>', ArrayHelper::getColumn($model->books, 'bookname'));
          }, 
        ],
       ['class' => 'yii\grid\ActionColumn'],
   ],
]); ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28178042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档