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.