No artigo anterior implementamos o CRUD de Produtos, utilizando as relações geradas pelo Yii para integra Produtos com categorias.

Nesse artigo irei implementar o CRUD de User e também irei criar suas telas de update uma para os dados gerais do usuário e outra para alterar somente a senha.

Nosso Create User tem uma peculiaridade interessante. No momento do cadastro o campo de senha precisa estar presente, já no update, iremos movê-los para outra view. Isso se dá pelo fato das senhas serem criptografadas e também para fazermos a alteração da senha somente depois de entrar com a senha antiga…


No artigo anterior basicamente movemos os CRUDs para o Admin do site e customizamos o CRUD Category. No post de hoje vamos customizar o CRUD de produtos (Product).

Customizando o CRUD Product

Nosso CRUD de produtos tem uma peculiaridade, ela está relacionada com uma categoria, isso quer dizer que precisamos utilizar nossas famosas relations (relações).

Vamos começar a customizar o formulário de cadastro/alteração e fazer também o relacionamento com nossa categoria.


No artigo anterior implementamos as rotinas de autenticação e autorização no admin. Nesse artigo vamos implementar os CRUDs do admin e customizar as views do CRUD Category.

Como já foi dito em outro post, nosso admin é o nosso backend do site, onde os administradores poderão cadastrar, alterar e deletar dados e qualquer outra função de administrador.

Vamos começar fazendo mais uma pequena mudança no menu.

vitrine\views\layouts\admin.php


No artigo anterior implementamos o template e layout diferente para o admin. Nesse artigo vamos implementar a autenticação integrando com o banco.

Infelizmente o basic template do Yii não faz a implementação do login com o banco. Mas mostrarei como implementar o login da mesma forma que o advanced template faz.

  1. A requisição (request) é feita pelo controllers/SiteController.php pelo método actionLogin();
  2. É iniciada uma comunicação com models/LoginForm.php passando os parâmetros username e password, para models/LoginForm.php;
  3. É chamado o método login(), chamando o método getUser() (models/LoginForm.php) que se comunica com o models/User.php;
  4. É chamando o método findByUsername() retornando o resultado da…


No artigo anterior, aprendemos como criar um módulo e criamos o nosso admin (como era chamado antigamente, o nosso backend) da nossa vitrine pelo Gii. Nesse artigo vamos preparar o módulo admin para receber um layout diferente e criar os menus pertinentes ao admin.

Nota: Pode não parecer, mas este artigo está ligado a geração de módulos visto anteriormente, porém está ligado também a um assunto que veremos mais para frente no projeto.

Para começar precisamos separar um pouco as coisas. Vamos criar um layout separado para o admin com seus próprios menus. …


No artigo anterior, fizemos algumas telas com o CRUD usando o Gii. Nesse artigo continuaremos a usar o Gii, mas dessa vez iremos criar um módulo.

Um módulo basicamente é um mini app dentro do seu app principal. No módulo você cria toda sua estrutura MVC para que ela fique estruturalmente mais organizada e claro para que possa reutilizá-la em outro projeto Yii.

Um módulo sozinho, ou seja, sem uma aplicação Yii não funciona.

Exemplos de uso de módulos: Sistema administrativo (o que vamos criar aqui), uma API para retornar JSON para um app Android, um carrinho de compras para…


No artigo anterior, finalizamos a criação das migrations do nosso projeto vitrine. Nesse artigo conheceremos a mais poderosa ferramenta do Yii Framework, o Gii.

O Gii é um gerador de código que vai agilizar muito o seu trabalho, ele cria os seus CRUDs de uma forma rápida e visual, ou seja, faz tudo pelo seu navegador. Ouso dizer que, com apenas 2 cliques, terá seu cadastro funcionando 100%, com suas devidas validações e formatações. Ele cria também módulos e extensões para o Yii Framework.

Resumindo, o Gii vai fazer para você toda aquela coisa chata de criar o model, depois…


Nesse artigo iremos construir as outras tabelas do sistema. O artigo anterior vimos uma introdução breve sobre as migrations.

Por quê usar as Migrations?

Pode não ter ficado claro para muitos, mas as migrations são muito importantes, porque é uma excelente forma de sempre manter seu banco de dados atualizado entre sua máquina, sua equipe e principalmente o ambiente de produção.

Imagine a situação onde você está desenvolvendo uma aplicação junto com um amigo remotamente, cada um na sua casa. Seu amigo precisou modificar alguma coisa no banco. Você já baixou as modificações do seu repositório e roda a aplicação e estoura um erro na…


Bom posso começando dizendo com minha relação com com o Yii é uma linha tênue entre gostar muito e odiá-lo. Mas calma caro leitor, essa parte de ódio é muito passageira e nos parágrafos abaixo explicarei isso.

Tudo começou no ano de 2011 em uma empresa que comecei a trabalhar que tinha um site monstro de leilão por centavos (isso era uma febre na época) e a ideia era mudar a plataforma para um framework, e o framework escolhido foi o Yii 1 (na época eu mal conhecia os framewoks e só tinha ouvido falar no Symfony, Cake e CodeIgniter


No artigo anterior mostrei como fazer a configuração do basic template do projeto vitrine. Hoje falarei sobre as migrations.

O que são as Migrations

As migrations (migrações) são uma parte muito importante da nossa aplicação, pois com ela conseguimos criar e alterar todas as estrutura de nossas tabelas. Elas não passam de arquivos em PHP que fazem escrita no nosso schema do bando de dados.

Tá e aí? O que eu consigo fazer com isso?

  • Criar novas migrations;
  • Aplicar as migrations criadas;
  • Reverter;
  • Re-aplicar;
  • Histórico de tudo que foi executado na migration.

O que se pode fazer com as Migrations

Basicamente o que a migration faz é criar, alterar e dropar suas tabelas…

Cálcio Heavy Metal

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store