web-dev-qa-db-fra.com

Pourquoi utilisons-nous getState () dans une instruction select de requête lors de la récupération de données dans Joomla?

J'apprends le développement de Joomla Extension et je substitue la méthode getListQuery() d'un modèle qui étend JModelList.

Maintenant, le problème est que nous pouvons récupérer une liste de données de la base de données en utilisant ce qui suit:

 $ db = $ this-> getDbo (); 
 $ query = $ db-> getQuery (true); 
 $ query-> select ('id, titre, état , société ') -> à partir de ($ db-> quoteName (' #__livres '))); 

Mais mon ebook utilise la déclaration suivante

 $ requête-> sélectionner (
 $ this-> getState ('list.select', 'a.id, a.title,' .'a.state, a.company ')) ; 

Je comprends la méthode getState() mais pourquoi l'auteur de l'ebook utilise-t-il getState() dans l'instruction select? Quel est le but d'utiliser cela et où la propriété 'list.select' sera définie?

4
Sumer Raj Chouhan

L'utilisation de state dans l'instruction select permet aux extensions externes d'utiliser votre méthode individuellement et d'obtenir différents ensembles de données.

Un bon exemple est mod_articles_news module helper qui définit les champs à sélectionner dans le modèle d’article:

// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));

... 

$model->setState('list.select', 'a.fulltext, a.id, a.title, a.alias, a.introtext, a.state, a.catid, a.created, a.created_by, a.created_by_alias,' .
' a.modified, a.modified_by, a.publish_up, a.publish_down, a.images, a.urls, a.attribs, a.metadata, a.metakey, a.metadesc, a.access,' .
' a.hits, a.featured, a.language');

...

$items = $model->getItems();
3
Dmitry Rekun