2017-12-14 25 views
-1

index보기가 있는데 여기에 필드 이름이 sub-division입니다. 필드에 ID가 표시됩니다. 하지만 ID 대신 name으로 표시하고 싶습니다.yii2 gridview에서 ID에 대한 이름을 가져올 수 없습니다.

나는 무엇을 했습니까?

내가 내 검색 모델에서 내 Model

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

의 기능을 배치 한 나는

[ 
      'label' => 'Sub-Division', 
      'value' => function ($d) { 
        return $d->subdivision->name; 
      }, 
      // 'filter' => Html::activeDropDownList($searchModel, 'sub_division', \common\models\SurveyHescoSubdivision::toArrayList(), ['prompt' => "Sub-Div", 'class' => 'form-control']), 

     ], 

table

$query->andFilterWhere([ 
     'id' => $this->id, 
     'meter_id' => $this->meter_id, 
     'created_by' => $this->created_by, 
     'updated_by' => $this->updated_by, 
     'created_at' => $this->created_at, 
     'updated_at' => $this->updated_at, 
     'store_id' => $this->store_id, 
     'sub_division'=> $this->sub_division, 
     'status'=>'Inventory Stored', 

    ]); 

처럼 그리고 내 인덱스보기에서 필터링을 수행 한 열이 name 개 있습니다. id을 설치하십시오.

내 인덱스 페이지 내가

내가 다른 뷰에서이 일을했지만 내가 모르는 비 개체의 속성을 얻으려고 노력 아래의 예외

을 얻고 고토 왜 이것이 보이고 있는지

어떤 도움을 주시면 감사하겠습니다.

답변

1

귀하의 세분 ID는, 사용 비어 :

[ 
    'label' => 'Sub-Division', 
    'value' => 'subdivision.name', 
], 

또는

[ 
    'label' => 'Sub-Division', 
    'value' => function ($d) { 
     return !empty($d->sub_division) ? $d->subdivision->name : null; 
    }, 
],