Bonjour,
Je m'essaye à développer un composant permettant de consulter des données stockées en base.
J'ai donc suivi le tuto "officiel" que l'on trouve ici
Je débute en programmation, mais d'après ce que je sais du modèle MVC, les différentes couches permettent de dispatcher les responsabilités. J'avoue être surpris (en fait complètement dérouté) quand je trouve de l'accès aux données dans le modèle comme là par ex :
De ce que j'ai compris en lisant la doc, c'est le principe du "Active record pattern"
=> Un objet = une table et "en gros" les attributs de l'objets sont équivalents aux champs de la table associée.
Quid des objets complexes ? = hydratés par pls tables ?
J'arrive à me débrouiller pour récupérer des listes d'objets simples (de type JModelList comme l'exemple ci-dessus) avec cette méthode "getListQuery()".
Mais je n'arrive pas à me dépatouiller avec les objet de tye JModelAdmin par ex.
Comment récupérer un objet dont une des propriétés est stockée dans une table et une autre dans une autre table ?
=> Passer par des objets intermédiaires ? OK ! Mais là encore, comment déclarer ça ?!?
visiblement pas avec getTable :/
Ca donnerait quoi avec une voiture ?
Merci de votre aide !
Je m'essaye à développer un composant permettant de consulter des données stockées en base.
J'ai donc suivi le tuto "officiel" que l'on trouve ici
Je débute en programmation, mais d'après ce que je sais du modèle MVC, les différentes couches permettent de dispatcher les responsabilités. J'avoue être surpris (en fait complètement dérouté) quand je trouve de l'accès aux données dans le modèle comme là par ex :
Code:
class HelloWorldModelHelloWorlds extends JModelList { /** * Method to build an SQL query to load the list data. * * @return string An SQL query */ protected function getListQuery() { // Initialize variables. $db = JFactory::getDbo(); $query = $db->getQuery(true); // Create the base select statement. $query->select('*') ->from($db->quoteName('#__helloworld')); return $query; } }
=> Un objet = une table et "en gros" les attributs de l'objets sont équivalents aux champs de la table associée.
Quid des objets complexes ? = hydratés par pls tables ?
J'arrive à me débrouiller pour récupérer des listes d'objets simples (de type JModelList comme l'exemple ci-dessus) avec cette méthode "getListQuery()".
Mais je n'arrive pas à me dépatouiller avec les objet de tye JModelAdmin par ex.
Comment récupérer un objet dont une des propriétés est stockée dans une table et une autre dans une autre table ?
=> Passer par des objets intermédiaires ? OK ! Mais là encore, comment déclarer ça ?!?
visiblement pas avec getTable :/
Ca donnerait quoi avec une voiture ?
Code:
class Voiture { private $roues; private $volant; //HELP ME ici???? } class Roue { public function getTable($type = 'Roue', $prefix = 'RoueTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } } class Volant { public function getTable($type = 'Volant', $prefix = 'VolantTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } }