Heim >php教程 >PHP开发 >Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

黄舟
黄舟Original
2016-12-30 10:07:581369Durchsuche

Gii ist ein Artefakt in yii2. Die Verwendung kann viel Entwicklungszeit sparen.

Nun verwenden Sie es, um eine Benutzerverwaltungsoberfläche zu erstellen.

Die Route von Gii ist gii, also geben Sie index.php?r=gii ein, um die Gii-Homepage wie folgt aufzurufen

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

Die grundlegende Crud-Schnittstelle verwendet Modellgenerator Kann mit dem CRUD-Generator vervollständigt werden.

Da User das integrierte Modell von Yii ist, müssen wir es nicht mehr generieren, sondern können einen Blick auf die Model Generator-Schnittstelle werfen

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

Geben Sie einfach den Tabellennamen ein. Weitere Felder werden automatisch ausgefüllt. Nachdem Sie auf „Weiter“ geklickt haben, können Sie eine Vorschau der generierten Datei anzeigen und dann auf „Generieren“ klicken, um sie automatisch zu generieren.

CRUD Generator kann uns dabei helfen, die V- (Ansicht) und C- (Controller-) Teile in MVC zu generieren. Die Schnittstelle ist wie folgt:

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

Klicken Sie auf „Weiter“. Generieren: Es kann uns helfen, das Grundgerüst zu generieren.

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

Fügen Sie in Kombination mit der zuvor verwendeten Admin-Vorlage im linken Bereich einen Link zum Verwalten von Benutzern hinzu.

Menüanweisung zu backendviewslayoutsleft.php hinzufügen

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

wobei icon das Schriftartsymbol mit Fonts Awesome (http://fontawesome.io/) ist, gefolgt von Glyphicons im Bootstrap haben die gleichen Funktionen, jedoch mit mehr Symbolen.

URL ist die Route, auf die verwiesen werden soll.

Sichtbar ist, ob die Seite angezeigt werden soll oder nicht. Die Beurteilung basiert auf den Berechtigungen in rbac zuvor >Die standardmäßig generierte Seite wird wie folgt angezeigt. Dies sind möglicherweise nicht die Felder, die wir anzeigen möchten. Daher müssen wir die Ansicht

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

ändern angezeigte Felder zu Benutzername, E-Mail, Erstellungsdatum, Aktualisierungsdatum, Rolle (RBAC-bezogen).

Ändern Sie die Konfiguration des GridView-Steuerelements in backendviewsuserindex.php wie folgt:

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

wobei email:email ein herkömmliches Format von girdview ist und das vollständige format attribute:format:label ist , wobei die letzten beiden Teile möglicherweise nicht bereitgestellt werden.


Für die vom zweiten Format unterstützten Typen können Sie die Methoden anzeigen, die mit as in yiii18nFormatter beginnen. Beispielsweise ruft E-Mail die asEmail-Methode von Formatter auf.

<?= 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;],
        ],
    ]); ?>
Dies wird für die benutzerdefinierte Anzeige, Anzeige/Sortierung des Attributbenutzer-Gridview-Tabellenkopfes usw. verwendet. Der Wert ist der spezifische angezeigte Inhalt. In diesem Beispiel erfolgt der Aufruf im Modell (commonmodelsUser) Die getStatusLabel-Methode zeigt den Rückgabewert an. Value kann auch anonyme Methoden verwenden. Die im Rollenfeld verwendete Methode


getStatusLabel lautet beispielsweise wie folgt:

[  
              &#39;attribute&#39; => &#39;status&#39;,  
              &#39;value&#39; => &#39;statusLabel&#39;,  
],
Der geänderte Anzeigeeffekt ist wie folgt:



/**
     * @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];
    }
Das Obige ist der Inhalt der Yii2-Framework-Studiennotizen (7) – gii und GridView. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Anmerkungen zur Yii2-Framework-Studie (7) – gii und GridView

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn