Como usar model no Codeigniter 4

Models - Codeigniter 4

 

 

No CodeIgniter 4, o conceito de "Models" é uma parte essencial da estrutura MVC (Model-View-Controller) e é usado para interagir com o banco de dados e recuperar os dados que serão exibidos na View. O CodeIgniter 4 fornece uma maneira fácil e poderosa de criar e trabalhar com Models. Vou explicar como criar, carregar e usar Models no CodeIgniter 4.

Passo 1: Criar um Model Para criar um Model no CodeIgniter 4, você precisa criar um arquivo PHP dentro do diretório app/Models. O nome do arquivo deve ser o mesmo que o nome da classe do Model. A classe do Model deve estender CodeIgniter\Model.

Exemplo de um Model chamado ProductModel.php:

<?php

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products'; // Nome da tabela do banco de dados
    protected $primaryKey = 'id'; // Chave primária da tabela
    protected $allowedFields = ['name', 'description', 'price']; // Campos permitidos para inserção/atualização
}

 

Passo 2: Carregar o Model Você pode carregar um Model em qualquer Controller ou outro lugar que precise interagir com o banco de dados. O CodeIgniter 4 possui um mecanismo de carregamento automático, então você não precisa usar require ou include para carregar o Model. Em vez disso, você pode usar o serviço de injeção de dependência para carregar o Model.

Exemplo de como carregar o Model ProductModel em um Controller:

<?php

namespace App\Controllers;

use App\Models\ProductModel;
use CodeIgniter\Controller;

class ProductController extends Controller
{
    public function index()
    {
        $productModel = new ProductModel(); // Carrega o Model
        $products = $productModel->findAll(); // Obtém todos os registros da tabela 'products'

        // Aqui você pode passar os dados obtidos para a view ou executar outras operações.
    }
}

 

Passo 3: Usar o Model Após carregar o Model, você pode usar os métodos fornecidos por ele para interagir com o banco de dados. O CodeIgniter 4 oferece uma variedade de métodos úteis que você pode usar para executar operações CRUD (Create, Read, Update, Delete) e muito mais.

Aqui estão alguns exemplos de métodos comuns disponíveis em Models no CodeIgniter 4:

  • findAll(): Retorna todos os registros da tabela.
  • find($id): Retorna um único registro com base no ID.
  • insert($data): Insere um novo registro na tabela.
  • save($data): Salva/Atualiza conforme o array recebido. Se um id é identificado o registro será atualizado na tabela.
  • update($id, $data): Atualiza um registro existente com base no ID.
  • delete($id): Exclui um registro com base no ID.

Exemplo de uso:

$productModel = new ProductModel();

// Inserir um novo produto
$data = [
    'name' => 'Novo Produto', // $this->request->getPost('name')
    'description' => 'Descrição do novo produto', // $this->request->getPost('description')
    'price' => 19.99  // $this->request->getPost('price')
];
$productModel->insert($data);

// Atualizar um produto existente

// recebendo dados do formulário via POST
// $post = $this->request->getPost();

$data = [
    'name' => 'Produto Atualizado',
    'description' => 'Nova descrição do produto',
    'price' => 29.99
];

// exemplo de um método update

/*
public function update($id)
{
    $id = (int) $id;
    $post = $this->request->getPost();
    $productModel->update($id, $post);
}
*/

$productModel->update(1, $post);

// Excluir um produto
$productModel->delete(1);

// Obter todos os produtos
$products = $productModel->findAll();

// Obter um produto específico por ID
$product = $productModel->find(1);

 

Esses são apenas alguns exemplos básicos do que você pode fazer com Models no CodeIgniter 4. Para aprender mais sobre os métodos disponíveis e recursos avançados, você pode consultar a documentação oficial do CodeIgniter 4 sobre Models: https://codeigniter.com/user_guide/models/index.html

Lembre-se de sempre seguir as práticas recomendadas de segurança e validação ao interagir com o banco de dados usando Models.