CakePHP: Como criei sistema de login?


| 18:31
Desenvolvimento Web
Nenhum comentário

  • Criei um projeto novo com CakePHP.
composer create-project --prefer-dist cakephp/app:~4.0 administradora-imoveis
  • O Composer criou um diretório novo com os arquivos do projeto.
Pasta do novo projeto no Finder.
  • Criei um banco de dados MySQL chamado de administradora-imoveis.
  • Alterei o arquivo /config/app_local.php da seguinte forma:
'username' => 'root',
'password' => 'root',
'database' => 'administradora-imoveis',
  • Conectei o banco de dados administradora-imoveis à aplicação em CakePHP.
Mensagem de sucesso da conexão com o banco de dados MySQL.
  • Criei a tabela users com o seguinte código SQL:

 

Tabela users no phpMyAdmin.

 

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `name` varchar(220) NOT NULL,
  `email` varchar(220) NOT NULL,
  `username` varchar(220) NOT NULL,
  `password` varchar(220) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  • No diretório da aplicação em CakePHP, gerei o CRUD da tabela users com o seguinte código:
bin/cake bake all users
  • O plugin bake criou os seguintes arquivos:
    • /src/Controller/UsersController.php
    • /src/Model/Entity/User.php
    • /src/Model/Table/UsersTable.php
    • /src/templates/Users/add.php
    • /src/templates/Users/edit.php
    • /src/templates/Users/index.php
    • /src/templates/Users/view.php
  • Criei uma rota para o diretório admin.
  • Não consegui criar uma rota direta para admin/logout. Logo, é preciso acessar admin/users/logout.
  • Tive problemas para usar a classe Event na function beforeRender.
  • Foi necessário adicionar o seguinte código a AppController.php:
use Cake\Event\EventInterface;
  • Foi necessário utilizar EventInterface no CakePHP 4.0 Strawberry, ao invés de Event.

Fonte: Declaration of UsersController::beforeFilter() should be compatible with AppController::beforeFilter(Cake\Event\Event $event)

  • Foi necessário consultar a documentação do CakePHP para poder fazer os formulários.

Fonte: Form

  • Adicionei a imagem da logomarca em templates/login.php com o seguinte código:

  • Não consegui solucionar o problema do posicionamento do seletor CSS form-signin, que tem o seu conteúdo do topo cortado na página admin/users/login quando se reduz o tamanho da tela.
Página de login.

Projeto de Sistema de Login



0 Downloads

0 Comentários

Deixe o seu comentário!