CRUD básico com Codeigniter 4

O CodeIgniter 4 é um #framework #PHP leve e poderoso que facilita o #desenvolvimento de aplicativos #web.

Encontre cursos de codeigniter4 na Udemy

 

Abaixo um exemplo básico de como criar um CRUD (Create, Read, Update, Delete) usando o CodeIgniter 4.

  1. Configuração inicial:
  • Acesse https://codeigniter.com, baixe e instale o #CodeIgniter 4 em seu ambiente de desenvolvimento.
  • Configure as informações de conexão do banco de dados com as credenciais de acesso no arquivo app/Config/Database.php.
  1. Criação do Banco de Dados:
  • Crie um banco de dados #MySQL e uma tabela chamada users.

    Sugestão
    CREATE TABLE `users` (
     `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
     `name` varchar(100) DEFAULT NULL,
     `email` varchar(100) DEFAULT NULL,
     `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
     PRIMARY KEY (`id`),
     UNIQUE KEY `nome_unico` (`email`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4

     
  • A tabela users deve ter as colunas id (chave primária, autoincremento), name, email e created_at.
  1. Model:
  • Crie um novo arquivo UsersModel.php em app/Models/ com o seguinte código:
<?php

namespace App\Models;

use CodeIgniter\Model;

class UsersModel extends Model
{
    protected $table = 'users';
    protected $primaryKey = 'id';
    protected $allowedFields = ['name', 'email', 'created_at'];
}
  1. Controller:
  • Crie um novo arquivo Users.php em app/Controllers/ com o seguinte código:
<?php

namespace App\Controllers;

use App\Models\UsersModel;

class Users extends BaseController
{
    public function index()
    {
        $model = new UsersModel();
        $data['users'] = $model->findAll();

        return view('users/index', $data);
    }

    public function create()
    {
        return view('users/create');
    }

    public function store()
    {
        $model = new UsersModel();
        $data = [
            'name' => $this->request->getPost('name'),
            'email' => $this->request->getPost('email'),
            'created_at' => date('Y-m-d H:i:s')
        ];

        $model->insert($data);

        return redirect()->to('/users');
    }

    public function edit($id)
    {
        $model = new UsersModel();
        $data['user'] = $model->find($id);

        return view('users/edit', $data);
    }

    public function update($id)
    {
        $model = new UsersModel();
        $data = [
            'name' => $this->request->getPost('name'),
            'email' => $this->request->getPost('email')
        ];

        $model->update($id, $data);

        return redirect()->to('/users');
    }

    public function delete($id)
    {
        $model = new UsersModel();
        $model->delete($id);

        return redirect()->to('/users');
    }
}
  1. Views:
  • Crie os arquivos de visualização em app/Views/users/ para exibir o CRUD:

  • index.php (exibe a lista de usuários):

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Email</th>
            <th>Created At</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($users as $user) : ?>
            <tr>
                <td><?= $user['name'] ?></td>
                <td><?= $user['email'] ?></td>
                <td><?= $user['created_at'] ?></td>
                <td>
                    <a href="<?= site_url('users/edit/' . $user['id']) ?>">Edit</a>
                    <a href="<?= site_url('users/delete/' . $user['id']) ?>">Delete</a>
                </td>
            </tr>
        <?php endforeach; ?>
    </tbody>
</table>
  • create.php (exibe o formulário de criação de usuário):
<form action="<?= site_url('users/store') ?>" method="post">
    <input type="text" name="name" placeholder="Name">
    <input type="email" name="email" placeholder="Email">
    <button type="submit">Create</button>
</form>
  1. Rotas:
  • Configure as rotas em app/Config/Routes.php adicionando as seguintes linhas:
$routes->get('users', 'Users::index');
$routes->get('users/create', 'Users::create');
$routes->post('users/store', 'Users::store');
$routes->get('users/edit/(:num)', 'Users::edit/$1');
$routes->post('users/update/(:num)', 'Users::update/$1');
$routes->get('users/delete/(:num)', 'Users::delete/$1');

 

Este exemplo básico demonstra como criar um CRUD usando o CodeIgniter 4. Através do model UsersModel, você pode interagir com o banco de dados para realizar as operações de criar, ler, atualizar e deletar registros na tabela users. Os métodos no controller Users lidam com as requisições e renderizam as views apropriadas. Lembre-se de ajustar e expandir esse exemplo conforme suas necessidades específicas.