2017-05-17 6 views
0

私はcategoryの値をidではなくその名前に従って表示しようとしています。私はそうしようとしています:DetailView yii2にその名前に従って値を表示する方法は?

[ 
    'attribute' => 'category_id', 
    'value' => 'category.name', 
], 

しかし属性は表示されません。それはCategoryの代わりにnameと表示されます。カテゴリ名が正しく表示されます。

'category.name'も試してみましたが、同じ値を表示していて、'category_id'は正しく表示されていますが、名前はIDに従っています。

どうすれば解決できますか?

答えて

2

に直接使うラベルを追加であるあなたは、このように、カテゴリの関係を定義していますか?

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

あなたはGridViewの中に表示したい場合は、DetailViewで表示したい場合は、この

[ 
    'attribute' => 'category_id', 
    'value' => $model->category ? $model->category->name : '', 
], 
+0

ありがとうございました! – devorye

0

あなたはラベルが必要なようです。

最も簡単な方法は、詳細ビューの項目

[ 
    'label' => 'Category', 
    'attribute' => 'category_id', 
    'value' => ...., 

], 
+0

のように、このdoesnのそれを行うことができます

[ 'attribute' => 'category_id', 'value' => 'category.name', ], 

あなたのように、あなたがそれを行うことができます仕事もありません。ラベルは正しく置かれていますが、実際のカテゴリ名の代わりに '' category.name''だけを表示しています。 – devorye

+0

関連する値とラベルが必要な場合は、質問を更新して、関連するモデルとコントローラの動作を追加してください。 – scaisEdge

関連する問題