ホームページ  >  記事  >  php教程  >  Yii2 フレームワーク学習メモ (7) -- gii と GridView

Yii2 フレームワーク学習メモ (7) -- gii と GridView

黄舟
黄舟オリジナル
2016-12-30 10:07:581364ブラウズ

Gii は yii2 のアーティファクトです。これを使用すると、開発時間を大幅に節約できます。

次に、これを使用してユーザー管理インターフェイスを構築します。

Gii のルートは gii なので、次のように、index.php?r=gii と入力して Gii ホームページに入ります

Yii2 フレームワーク学習メモ (7) -- gii と GridView

基本的な crud インターフェイスは、Model Generator と CRUD Generator で完成できます。

User は Yii の組み込みモデルであるため、生成する必要はありませんが、Model Generator インターフェイスを確認することができます

Yii2 フレームワーク学習メモ (7) -- gii と GridView

テーブル名を入力するだけで、他のフィールドは自動的に入力されます「次へ」をクリックすると、生成されたファイルをプレビューできます。「生成」をクリックすると、自動的にファイルが生成されます。

CRUD ジェネレーターは、MVC で V (ビュー) 部分と C (コントローラー) 部分を生成するのに役立ちます。インターフェイスは次のとおりです。

Yii2 フレームワーク学習メモ (7) -- gii と GridView

[次へ] をクリックし、[生成] をクリックして基本フレームワークを生成します。

Yii2 フレームワーク学習メモ (7) -- gii と GridView

以前に使用した adminlte テンプレートと組み合わせて、左側のパネルにユーザーを管理するためのリンクを追加します。

backendviewslayoutsleft.phpにメニューステートメントを追加します

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

アイコンはfonts awesome (http://fontawesome.io/)を使用したフォントアイコンで、ブートストラップのGlyphiconsと同じ機能を持ちますが、より多くのアイコンがあります。

url は、ポイントしたいルートです。

visible は、以前の rbac の権限に基づいて判断されます。

Yii2 フレームワーク学習メモ (7) -- gii と GridView

デフォルトで生成されるページに表示されるフィールドは次のとおりです。これには、ビュー

Yii2 フレームワーク学習メモ (7) -- gii と GridView

を変更し、表示されるフィールドをユーザー名、電子メール、作成日、更新日、ロール (RBAC 関連) に変更する必要があります。

backendviewsuserindex.php の GridView コントロールの構成を次のように変更します。

<?= 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;],
        ],
    ]); ?>

ここで、email:email は GridView の従来の形式であり、完全なものは Attribute:format:label であり、最後の 2 つの部分は変更する必要はありません。提供されます。

2 番目の形式でサポートされている型については、yiii18nFormatter の as で始まるメソッドを表示できます。たとえば、email は Formatter の asEmail メソッドを呼び出します。

[  
              &#39;attribute&#39; => &#39;status&#39;,  
              &#39;value&#39; => &#39;statusLabel&#39;,  
],

これは、カスタマイズされた表示、属性ユーザーのグリッドビューヘッダーの表示/並べ替えなどに使用されます。この例では、モデル (commonmodelsUser) の getStatusLabel メソッドが呼び出され、その値が返されます。それをアップします。値は、次のようにRoleフィールドで使用される

getStatusLabelメソッドなどの匿名メソッドも使用できます

/**
     * @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];
    }

変更された表示効果は次のとおりです

Yii2 フレームワーク学習メモ (7) -- gii と GridView

以上がYii2フレームワーク学習メモ(7) - 内容ですgii と GridView の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。