역할, 위치, 부서 열에서 이러한 db 테이블 "역할", "위치", "부서"의 ID를 볼 수 있습니다. gridview 및 detailview yii2에서 id 대신 다른 매개 변수를 검색하는 방법은 무엇입니까?
ID 대신 이름을 붙여 넣을 수 있습니까?
미리 감사드립니다.
역할, 위치, 부서 열에서 이러한 db 테이블 "역할", "위치", "부서"의 ID를 볼 수 있습니다. gridview 및 detailview yii2에서 id 대신 다른 매개 변수를 검색하는 방법은 무엇입니까?
ID 대신 이름을 붙여 넣을 수 있습니까?
미리 감사드립니다.
자세히보기 체크 모델의 관계 및 관계를 사용하여 : -
'attributes' => [
'title',
'relational_data',
[
'label' => 'Field Name',
'value' => $data->relation_table->field_name,
],
],
그리드보기 경우 : -
[
'attribute' => 'role_id',
'value' => function ($data) {
return $data->relation_table->field_name;
},
],
그리고 당신의 표 관계은 다음과 같아야합니다. -
public function getRelation_table()
{
return $this->hasOne(Table::className(), ['relation_id' => 'id']);
}
$ data-> relation_table-> field_name을 $ data-> role-> name으로 변경했으며 "알 수없는 속성 가져 오기 : backend \ models \ User :: role"라고 말합니다. –
먼저 사용자 모델에서 사용 가능한 관계를 확인합니다. –
대단히 감사합니다! 필요에 따라 작동합니다. –
익명 함수를 사용하여 특성 값을 변경하십시오. 대신의 GridView 열 목록에
role_id,
간단한 지금이 당신에게 정확히 같은 결과를 얻을 수 배열
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
return $model->role_id;
},
],
를 사용하지만 당신은 그것을 사용자 정의 할 수 있습니다. 당신의 사용자 클래스에 지정된 모든 역할과
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
switch ($model->role_id) {
case 1:
return 'User';
case 2:
return 'Moderator';
case 3:
return 'Admin';
}
},
],
어쩌면 당신은 가지고 이미 생성 방법 : 예를 들어
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
return User::listRoles()[$model->role_id];
},
],
:
public static function listRoles()
{
return [
1 => 'User',
2 => 'Moderator',
3 => 'Admin',
];
}
그래서 당신은 같은의 GridView에서 사용할 수 있습니다
관계형 데이터의 경우 다음과 같이 사용할 수 있습니다.
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
return $model->role->name;
},
],
$model
은 현재 사용자의 인스턴스로 표시됩니다.
Guide의 GridView 열에 대해 자세히 알아보십시오. 당신은 다음과 같이 할
스위치로 하드 코드없이이 논리를 구현할 수 있습니까? id 대신 역할의 이름을 자동으로 붙여 넣는다는 뜻입니다. 역할을 제한하고 싶지 않습니다. 왜냐하면 이것들은 물론 직위와 부서에도 무리가 있기 때문입니다. –
이미 하드 코딩 된 정적 메서드와 관계형 테이블의 세 가지 옵션을 제공했습니다. 당신은 이것들에 국한되지 않습니다. – Bizley
관계형 테이블 데이터 또는 다른 테이블 데이터가 필요하십니까? –
yeap, relational. "role"테이블의 id가 "user"테이블의 role_id와 같습니다. –
내 대답을 확인 했습니까? –