0

私は自分のウェブサイトのフィードバックページを作成しています。フィードバックのリストを表示するためにグリッドビューを使用しています。グリッドビューの行で、ボックスに写真、日付、およびユーザー名を入力したい。箱に写真を載せました。しかし、私は別のデータをどのように配置するのだろうか

景色:

[   'attribute' => 'iduser.photo',
            'format' => 'html',
            'value'=>  function($data) { return Html::img($data->imageurl,['id'=>'photo']); },
            'contentOptions'=>['style'=>'max-width: 10px; max-height: 10px'],
        ],

モデル/フィードバック エンティティからのフィードバック プロパティ:

 * @property integer $ID_KOMENTAR
 * @property integer $id
 * @property string $KOMENTAR //comment
 * @property string $TANGGAL  //date
 * @property User $iduser     //related to the user

およびフィードバックとユーザーの関連。フィードバックには 1 つのユーザー名があり、ユーザー名には多くのフィードバックがあります

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

ユーザー エンティティ: iduser、ユーザー名、写真

4

2 に答える 2

1

私はテストしていませんが、これはあなたのために働くはずです

public function actionIndex()
{
    $dataProvider = new ActiveDataProvider([ 'query' => Feedback::find()->with('iduser')->orderBy(['ID' => SORT_ASC, 'TANGGAL' => SORT_ASC])]);
    return $this->render('index', [ 'dataProvider' => $dataProvider ]);
}

あなたの見解では

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

        // user attributes examples
        [   
            'attribute' => 'iduser.photo',
            'value' => function($model)
            { 
                return Html::img($model->iduser->imageurl,['id'=>'photo']); 
            },
            'contentOptions' => [
                'style' => 'max-width: 10px; max-height: 10px'
            ],                      
            'format' => 'raw',
        ],
        // or in this mode
        [   
            'value' => 'iduser.username'
        ],
        ...................

        // your feedback attributes 

        'KOMENTAR',
        'TANGGAL',  

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

これがあなたが必要とするものであることを願っています

于 2015-08-26T12:18:39.793 に答える