2016-03-10 1 views
0

Je reçois une erreur de syntaxe à cause de la paix de code qui suit, en utilisant le template smarty. Comment puis-je le réparer?smarty foreach database fetch_assoc

Avis: Essayer d'obtenir la propriété de non-objet

{foreach from=autoLoader::getLibrary('database')->assoc("SELECT * FROM cms_news") item=news} 

Je suis en train de regarder à travers une fonction de fetch_assoc mysqli.

public function assoc($queryText) { 
     return $this->query($queryText)->fetch_assoc(); 
    } 
+0

'Smarty' est un moteur de template; il est utilisé pour afficher la sortie de votre application. La base de données est une forme de persistance. La sortie et la persistance n'ont aucune raison d'apparaître dans la même phrase (certaines applications n'implémentent même pas la persistance). Ne les mélange pas. Gérer la persistance du code PHP, obtenir des données, l'envoyer à Smarty pour l'affichage. Ne placez pas la logique de l'application dans les modèles. – axiac

Répondre

1

Gardez les choses simples, ne pas essayer d'appeler la fonction du modèle, au lieu, dans votre script php affecter les résultats à une variable et de transmettre cette variable à Smarty. Faire une requête dans un modèle est une mauvaise pratique