Ajouter les modèles
Les Modèles dans CodeIgniter
Dans CodeIgniter, les modèles sont utilisés pour gérer toutes les interactions avec la base de données. Ils représentent la couche "M" (Modèle) dans l'architecture MVC (Modèle-Vue-Contrôleur). Les modèles offrent une interface simplifiée pour l'exécution des requêtes de base de données, la manipulation des enregistrements, et la gestion des relations entre les données.
Exemple de Modèle : ItemModel
Le ItemModel est un exemple de modèle simple dans CodeIgniter. Il est utilisé pour interagir avec la table items dans la base de données.
<?php namespace App\Models;
use CodeIgniter\Model;
class ItemModel extends Model
{
protected $table = 'items';
protected $primaryKey = 'id';
protected $allowedFields = ['description', 'price'];
// Ajoutez des méthodes supplémentaires si nécessaire
}
protected $table: Spécifie le nom de la table dans la base de données.protected $primaryKey: Définit la clé primaire de la table.protected $allowedFields: Indique les champs qui peuvent être assignés en masse, utile pour les opérationssave()etupdate().
Exemple de Modèle : DevisModel
Le DevisModel gère les interactions avec la table devis. Il peut également contenir des méthodes personnalisées pour des requêtes spécifiques.
<?php
namespace App\Models;
use CodeIgniter\Model;
class DevisModel extends Model
{
protected $table = 'devis';
protected $primaryKey = 'id';
protected $allowedFields = ['client_name', 'date_created'];
public function getDevisItemsWithDetails($devisId)
{
// Exemple de jointure (ajustez selon votre structure de base de données)
return $this->db->table('devis_items')
->join('items', 'items.id = devis_items.item_id')
->where('devis_items.devis_id', $devisId)
->select('items.description, devis_items.quantity, items.price')
->get()
->getResultArray();
}
}
La méthode getDevisItemsWithDetails est un exemple de fonction personnalisée pour récupérer des données spécifiques liées à un devis.
Exemple de Modèle : DevisItemModel
Le DevisItemModel est utilisé pour gérer les relations entre les devis et les items.
<?php namespace App\Models;
use CodeIgniter\Model;
class DevisItemModel extends Model
{
protected $table = 'devis_items'; // Nom de la table dans la base de données
protected $primaryKey = 'id'; // Clé primaire de la table
protected $allowedFields = ['devis_id', 'item_id', 'quantity', 'custom_price']; // Champs autorisés pour l'insertion et la mise à jour
// Si vous avez des dates dans votre table, vous pouvez les gérer automatiquement :
protected $useTimestamps = false;
protected $createdField = ''; // Champ pour la date de création
protected $updatedField = ''; // Champ pour la date de mise à jour
// Autres propriétés et méthodes selon vos besoins...
}
Ce modèle peut être utilisé pour ajouter, mettre à jour ou supprimer des items associés à un devis spécifique.
Utilisation des Modèles dans les Contrôleurs
Les modèles sont généralement utilisés dans les contrôleurs pour effectuer des opérations de base de données. Par exemple :
public function create()
{
$itemModel = new ItemModel();
$newItem = [
'description' => 'Nouvel Item',
'price' => 100.00
];
$itemModel->save($newItem);
}