Les models

L'interaction avec la base de données

Les models sont les seules classes qui accèdent à la base de données.

La convention de nommage est la même que pour les blocks et les helpers.

Par exemple, le code suivant

<?php Mage::getModel('catalog/product') ?>

Fait appel à la classe Mage_Catalog_Model_Product, son but est de récupérer les informations d'un produit issues de la base de données.

Les méthodes à connaitre

  • load : permet de charger un objet directement par son ID.

    <?php $product = Mage::getModel('catalog/product')->load(1) ?>
  • save : sauvegarde un objet

  • delete : supprime un objet

  • les méthodes magiques set* et get* : elles vont faire appel à l'attribut correspondant. Par exemple,
<?php echo $product->getName(); // affiche l'attribut `name` de l'objet $product  ?>

<?php echo $product->getSpecialPrice(); // affiche l'attribut `special_price` de l'objet $product ?>

<?php echo $product->getEan13(); // affiche l'attribut `ean13` de l'objet $product ?>
Attention à bien nommer vos attributs, surtout si leur code comporte des chiffres ! Dans le dernier exemple ci-dessus, si l'on avait nommé notre attribut ean_13, il aurait été impossible de le récupérer via la méthode magique ! Il aurait fallu faire
<?php echo $product->getData('ean_13'); ?>