Verwenden Sie anonyme Funktion, um den Wert des Attributs zu ändern. Statt einfacher
role_id,
auf der Liste der Gridview-Spalten verwenden Array
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
return $model->role_id;
},
],
: Nun wird Ihnen genau das gleiche Ergebnis erhalten, aber Sie können es besonders anfertigen. Zum Beispiel:
[
'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';
}
},
],
Vielleicht hast dich bereits erstellen Methode mit allen in Ihrer Benutzerklasse mit dem Namen Rolle:
public static function listRoles()
{
return [
1 => 'User',
2 => 'Moderator',
3 => 'Admin',
];
}
so können Sie es im Gridview wie verwenden:
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
return User::listRoles()[$model->role_id];
},
],
Im Fall von relationalen Daten können Sie es auch verwenden:
[
'attribute' => 'role_id',
'value' => function ($model, $key, $index, $column) {
return $model->role->name;
},
],
$model
wird derzeit Instanz des Benutzers angezeigt.
Lesen Sie mehr über GridView-Spalten in der Guide.
Benötigen Sie relationale Tabellendaten oder unterschiedliche Tabellendaten? –
yeap, relational. ID in der "Rolle" -Tabelle entspricht der Rolle_ID in "Benutzer" Tabelle –
Haben Sie meine Antwort überprüft? –