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.