0

テーブルのフィードバックとユーザーがいます。フィードバック ページにユーザーの画像を表示しようとしています。私はグリッドビューを使用しています。これは私のグリッドビューです。

        [   'attribute' => 'iduser.photo',
            'headerOptions' => ['width' => '20px'],
            'format' => 'image',
            'value'=>  function($data) { return $data->imageurl; },
        ],

そしてモデル

public function getImageurl()
{
    return \Yii::$app->request->BaseUrl.'/../../'.$this->hasOne(User::className(), ['photo' => 'photo']);

}

私は正しいURLを取得しますが、写真名が間違っています。結果は「写真」です。データフォームエンティティの写真を取得したいですか?

4

1 に答える 1

0

モデル内では、次のようにフィードバックに関連するユーザーを取得する方法が必要です。

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

次に、 getImageurl メソッドは次のようになります。

public function getImageurl()
{
    return \Yii::$app->request->BaseUrl.'/../../'.$this->user->photo;
}

Aliasesを確認することをお勧めします。代わりに使用できます\Yii::$app->request->BaseUrl。たとえば、これはユーザーに表示するファイルの URL を取得するために使用する実装です。

public function getFileUrl() {
    return Yii::getAlias('@web/uploads/'.$this->fileName);
}
于 2015-08-25T23:56:24.213 に答える