Gii는 yii2의 아티팩트입니다. 이를 사용하면 개발 시간을 많이 절약할 수 있습니다.
이제 이를 사용하여 사용자 관리 인터페이스를 구축해 보세요.
Gii의 경로는 gii이므로 다음과 같이 index.php?r=gii를 입력하여 Gii 홈페이지에 진입합니다
기본 crud 인터페이스는 다음과 같습니다. 모델 생성기 CRUD 생성기로 완성할 수 있습니다.
사용자는 Yii에 내장된 모델이므로 더 이상 모델을 생성할 필요가 없지만 모델 생성기 인터페이스를 살펴볼 수 있습니다.
테이블 이름만 입력하면 나머지 필드는 자동으로 채워집니다. 다음을 클릭하면 생성된 파일을 미리 볼 수 있으며, 생성을 클릭하면 자동으로 생성됩니다.
CRUD Generator는 MVC에서 V(View) 및 C(Controller) 부분을 생성하는 데 도움이 됩니다. 인터페이스는 다음과 같습니다.
다음을 클릭하세요. 생성, 기본 프레임워크를 생성하는 데 도움이 될 수 있습니다.
이전에 사용한 관리 템플릿과 결합하여 왼쪽 패널에 사용자 관리 링크를 추가합니다.
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의 권한에 따라 결정됩니다.
기본 생성 페이지는 다음과 같습니다. 표시하려는 필드가 아닐 수도 있습니다. 이를 변경하려면
보기를 수정해야 합니다. 사용자 이름, 이메일, 생성 날짜, 업데이트 날짜, 역할(RBAC 관련)에 대한 필드가 표시됩니다.
backendviewsuserindex.php에서 GridView 컨트롤의 구성을 다음과 같이 수정합니다.
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'username', 'email:email', [ 'attribute' => 'status', 'value' => 'statusLabel', ], 'created_at:datetime', 'updated_at:datetime', [ 'label' => 'Role', 'value' => function($model) { $auth = \Yii::$app->authManager; $roles = $auth->getRolesByUser($model->id); $ret = ''; foreach ($roles as $role) { $ret .= ' ' . $role->name; } return $ret; }, ], ['class' => 'yii\grid\ActionColumn'], ], ]); ?>
여기서 email:email은 girdview의 일반적인 형식이고 전체 형식은 attribute:format:label입니다. , 여기서 마지막 두 부분은 모두 제공되지 않을 수 있습니다.
두 번째 형식이 지원하는 유형의 경우 yiii18nFormatter와 같이 시작하는 메소드를 볼 수 있습니다. 예를 들어 이메일은 Formatter의 asEmail 메소드를 호출합니다.
[ 'attribute' => 'status', 'value' => 'statusLabel', ],getStatusLabel 메서드는 다음과 같습니다.
수정된 표시 효과는 다음과 같습니다
/** * @return array */ public static function getStatusList() { return [ self::STATUS_DELETED => 'Deleted', self::STATUS_ACTIVE => 'Active', ]; } /** * @return string */ public function getStatusLabel() { return self::getStatusList()[$this->status]; }
위 내용은 Yii2 프레임워크 학습노트(7) - gii 및 GridView 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!