Maison  >  Article  >  php教程  >  Notes d'étude du framework Yii2 (7) -- gii et GridView

Notes d'étude du framework Yii2 (7) -- gii et GridView

黄舟
黄舟original
2016-12-30 10:07:581346parcourir

Gii est un artefact dans yii2. Son utilisation peut faire gagner beaucoup de temps de développement.

Utilisez-le maintenant pour créer une interface de gestion des utilisateurs.

La route de Gii est gii, alors entrez index.php?r=gii pour accéder à la page d'accueil de Gii, comme suit

Notes détude du framework Yii2 (7) -- gii et GridView

L'interface crud de base utilise Générateur de modèles Il peut être complété avec CRUD Generator.

Étant donné que l'utilisateur est le modèle intégré de Yii, nous n'avons plus besoin de le générer, mais nous pouvons jeter un œil à l'interface du générateur de modèle

Notes détude du framework Yii2 (7) -- gii et GridView

Entrez simplement le nom de la table, les autres champs seront remplis automatiquement. Après avoir cliqué sur Suivant, vous pouvez prévisualiser le fichier généré, puis cliquer sur Générer pour le générer automatiquement.

CRUD Generator peut nous aider à générer les parties V (View) et C (Controller) dans MVC. L'interface est la suivante

Notes détude du framework Yii2 (7) -- gii et GridView

Cliquez sur Suivant, cliquez sur Suivant. Générer, cela peut nous aider à générer le cadre de base.

Notes détude du framework Yii2 (7) -- gii et GridView

Combiné avec le modèle d'administration que nous avons utilisé auparavant, ajoutez un lien pour gérer les utilisateurs dans le panneau de gauche.

Ajouter une instruction de menu à backendviewslayoutsleft.php

['label' => 'Manage Users', 'icon' => 'fa fa-users', 'url' => ['user/index'], 'visible' => Yii::$app->user->can('managerUser')],

où l'icône est l'icône de police utilisant des polices géniales (http://fontawesome.io/), suivie de Les glyphicons dans bootstrap ont les mêmes fonctions, mais avec plus d'icônes.

url est l'itinéraire vers lequel pointer.

Visible est de savoir s'il faut afficher ou non. Le jugement est basé sur les autorisations dans rbac avant. Les autorisations sont utilisées pour afficher la page

Notes détude du framework Yii2 (7) -- gii et GridView

La page générée par défaut s'affiche. Les champs sont les suivants, qui ne sont peut-être pas les champs que nous souhaitons afficher, ce qui nous oblige à modifier la vue

Notes détude du framework Yii2 (7) -- gii et GridView

pour changer la vue. champs affichés pour le nom d'utilisateur, l'e-mail, la date de création, la date de mise à jour, le rôle (lié au RBAC).


Modifiez la configuration du contrôle GridView dans backendviewsuserindex.php comme suit,

<?= GridView::widget([
        &#39;dataProvider&#39; => $dataProvider,
        &#39;filterModel&#39; => $searchModel,
        &#39;columns&#39; => [
            [&#39;class&#39; => &#39;yii\grid\SerialColumn&#39;],
             &#39;username&#39;,
             &#39;email:email&#39;,
             [
             	&#39;attribute&#39; => &#39;status&#39;,
             	&#39;value&#39; => &#39;statusLabel&#39;,
    		 ],
             &#39;created_at:datetime&#39;,
             &#39;updated_at:datetime&#39;,
             [
             	&#39;label&#39; => &#39;Role&#39;,
             	&#39;value&#39; => function($model) {
             	$auth = \Yii::$app->authManager;
             	$roles = $auth->getRolesByUser($model->id);
             	$ret = &#39;&#39;;
	             	foreach ($roles as $role) {
	             		$ret .= &#39; &#39; . $role->name;
	             	}
             	return $ret;
        		},
        	],
            [&#39;class&#39; => &#39;yii\grid\ActionColumn&#39;],
        ],
    ]); ?>
où email:email est un format conventionnel de girdview, et le format complet est attribut:format:étiquette , où les deux dernières parties peuvent ne pas être fournies.


Pour les types pris en charge par le deuxième format, vous pouvez afficher les méthodes commençant par comme dans yiii18nFormatter. Par exemple, email appelle la méthode asEmail de Formatter.

[  
              &#39;attribute&#39; => &#39;status&#39;,  
              &#39;value&#39; => &#39;statusLabel&#39;,  
],
Ceci est utilisé pour l'affichage personnalisé, l'affichage/le tri de l'en-tête du tableau GridView de l'utilisateur, etc. La valeur est le contenu spécifique affiché Dans cet exemple, l'appel est dans le modèle (commonmodelsUser) La méthode getStatusLabel. affiche la valeur de retour. Value peut également utiliser des méthodes anonymes. Par exemple, la méthode


getStatusLabel utilisée dans le champ Rôle est la suivante

/**
     * @return array
     */
    public static function getStatusList()
    {
    	return [
    		self::STATUS_DELETED => &#39;Deleted&#39;,
    		self::STATUS_ACTIVE => &#39;Active&#39;,
    	];
    }
    
    /**
     * @return string
     */
    public function getStatusLabel()
    {
    	return self::getStatusList()[$this->status];
    }
L'effet d'affichage modifié est le suivant

Notes détude du framework Yii2 (7) -- gii et GridView

Ce qui précède est le contenu des notes d'étude du framework Yii2 (7) - gii et GridView Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn