>php教程 >PHP开发 >Yii2 프레임워크 연구 노트(7) -- gii 및 GridView

Yii2 프레임워크 연구 노트(7) -- gii 및 GridView

黄舟
黄舟원래의
2016-12-30 10:07:581370검색

Gii는 yii2의 아티팩트입니다. 이를 사용하면 개발 시간을 많이 절약할 수 있습니다.

이제 이를 사용하여 사용자 관리 인터페이스를 구축해 보세요.

Gii의 경로는 gii이므로 다음과 같이 index.php?r=gii를 입력하여 Gii 홈페이지에 진입합니다

Yii2 프레임워크 연구 노트(7) -- gii 및 GridView

기본 crud 인터페이스는 다음과 같습니다. 모델 생성기 CRUD 생성기로 완성할 수 있습니다.

사용자는 Yii에 내장된 모델이므로 더 이상 모델을 생성할 필요가 없지만 모델 생성기 인터페이스를 살펴볼 수 있습니다.

Yii2 프레임워크 연구 노트(7) -- gii 및 GridView

테이블 이름만 입력하면 나머지 필드는 자동으로 채워집니다. 다음을 클릭하면 생성된 파일을 미리 볼 수 있으며, 생성을 클릭하면 자동으로 생성됩니다.

CRUD Generator는 MVC에서 V(View) 및 C(Controller) 부분을 생성하는 데 도움이 됩니다. 인터페이스는 다음과 같습니다.

Yii2 프레임워크 연구 노트(7) -- gii 및 GridView

다음을 클릭하세요. 생성, 기본 프레임워크를 생성하는 데 도움이 될 수 있습니다.

Yii2 프레임워크 연구 노트(7) -- gii 및 GridView

이전에 사용한 관리 템플릿과 결합하여 왼쪽 패널에 사용자 관리 링크를 추가합니다.

backendviewslayoutsleft.php에 메뉴 명령문 추가

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

여기서 icon은 멋진 글꼴(http://fontawesome.io/)을 사용하는 글꼴 아이콘이고 그 뒤에는 부트스트랩의 Glyphicon은 기능은 동일하지만 아이콘이 더 많습니다.

url은 가리키는 경로입니다.

표시 여부는 이전에 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은 girdview의 일반적인 형식이고 전체 형식은 attribute:format:label입니다. , 여기서 마지막 두 부분은 모두 제공되지 않을 수 있습니다.

두 번째 형식이 지원하는 유형의 경우 yiii18nFormatter와 같이 시작하는 메소드를 볼 수 있습니다. 예를 들어 이메일은 Formatter의 asEmail 메소드를 호출합니다.

[  
              &#39;attribute&#39; => &#39;status&#39;,  
              &#39;value&#39; => &#39;statusLabel&#39;,  
],
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 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요! Yii2 프레임워크 연구 노트(7) -- gii 및 GridView


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.