Admin - Voltando ao Gii (CRUD) — Parte 1!

Image for post
Image for post

CRUDs no admin

vitrine\views\layouts\admin.php
Image for post
Image for post

Model Produtos

Image for post
Image for post
Repare no campo Namespace. O que fiz, foi alterar a rota padrão para app\modules\admin\models, sendo assim o modelo foi criado dentro do diretório models em nosso admin. Também ativei a I18N que serve para fazer sites multi-linguas.

Movendo os models Category e ProductImage para o admin.

CRUD Product

Image for post
Image for post
Repare que todos os campos do gerador do CRUD foi modificados, todos eles apontam para o módulo admin. Habilitamos aqui também I18N e Pjax que já integra a grid com o AJAX.

CRUD Category

Image for post
Image for post
Repare que todos os campos do gerador do CRUD foi modificados, todos eles apontam para o módulo admin. Habilitamos aqui também I18N e Pjax que já integra a grid com o AJAX.

CRUD User

/vitrine\modules\admin\models\User.php
Image for post
Image for post
Mais para frente faremos um tratamento especial nesse CRUD.

Limpando CRUDs anteriores


Customizando o CRUD Category

Image for post
Image for post
Form gerado pelo Gii
Image for post
Image for post
Veja que que foram exibidos os erros e na data foi requerido um inteiro.
Image for post
Image for post
Só precisamos disso nesse formulário. Veja as modificações feitas no código abaixo.
Image for post
Image for post
Adicionei um registro qualquer só para mostrar a tela padrão.

Widget GridView::widget()

Image for post
Image for post
Arquivo original criado pelo Gii

Detalhando o atributo Columns da GridView:

Aqui precisamos de umas formatações personalizadas

Iremos usar esse script para sobrescrever o Formatter padrão do Yii e adicionar “formatações” novas. Repare que na criação da classe fazendo uso da classe Formatter que está sendo estendida pela nossa classe. Precisamos dizer ao Yii para utilizar essa classe no projeto. Veja Abaixo.
...’components’ => [
‘request’ => [
‘cookieValidationKey’ => ‘LIvbC6NRcUZBbv-kaaQBCCEBTOmt5uCc’,
],
‘formatter’ => [
‘class’ => ‘app\components\formatters\BrazilianFormatter’,
‘dateFormat’ => ‘php:d/m/Y’,
‘datetimeFormat’ => ‘php:d/m/Y H:i:s’,
‘timeFormat’ => ‘php:H:i:s’,
‘decimalSeparator’ => ‘,’,
‘thousandSeparator’ => ‘.’,
‘currencyCode’ => ‘R$ ‘,
],
...

Editando o GridView::Widget() de categorias

Image for post
Image for post
Ficou bem melhor. Não foi?

Alterações feitas:


Image for post
Image for post
Adicione somente o índece aliases no array.

Editando o arquivo view.php

Image for post
Image for post
View original, gerado pelo Gii.

Modificações feitas:

Modificações feitas no DetailView::widget()

Image for post
Image for post
View formatada. Repare os itens modificados que foram citados e compare as duas telas.


PHPRio

Grupo de usuários de PHP do Rio de Janeiro

Cálcio Heavy Metal

Written by

Analista de sistemas e desenvolvedor web com mais de 15 anos de experiência, trabalhando atualmente na Lyseon Tech Saiba mais aqui: http://menezes-portfolio.com

PHPRio

PHPRio

Grupo de usuários de PHP do Rio de Janeiro

Cálcio Heavy Metal

Written by

Analista de sistemas e desenvolvedor web com mais de 15 anos de experiência, trabalhando atualmente na Lyseon Tech Saiba mais aqui: http://menezes-portfolio.com

PHPRio

PHPRio

Grupo de usuários de PHP do Rio de Janeiro

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade