Zend Framework, exécuter la requête, sans vue?
Je suis actuellement à la construction d'une petite section admin d'un site web en utilisant le Zend Framework, ce n'est que mon deuxième moment de l'utilisation du cadre, donc je suis un peu incertain sur quelque chose de choses. par exemple, j'ai une option d'archivage pour les articles de presse où l'utilisateur aura, espérons-le, cliquez sur un lien et l'article sera archivé cependant je ne peux pas travailler sur la façon d'obtenir une exécution sans l'avoir vue?
c'est mon contrôleur
public function archiveNewsAction()
{
//die(var_dump($this->_request->getParam('news_id')));
$oNews = new news();
$this->_request->getParam('news_id');
$oNews->archiveNewsArticle($news_id);
//die(var_dump($oNews));
$this->_redirect('/admin/list-all');
}
et c'est mon modèle
public function archiveNewsArticle($news_id)
{
//die($news_id);
$db = Zend_Registry::get('db');
$sql = "UPDATE $this->_name SET live = '0' WHERE news_id = '$news_id' LIMIT 1";
die($sql);
$query = $db->query($sql);
$row = $query->fetch();
return $row;
}
Je vous serais reconnaissant de toute aide, toute une peux donner.
Grâce
Sico
Pourquoi ne pas vous utilisez Zend_Db_Table pour le modèle? Au lieu d'avoir à créer une requête à la main, et explicitement obtenir la base de données, vous pouvez laisser ZF faire pour vous.
OriginalL'auteur | 2009-02-07
Vous devez vous connecter pour publier un commentaire.
Je l'utiliser avec des appels AJAX-seulement les actions que je ne veux pas de sortie ou je suis l'aide d'une autre sortie, comme XML ou JSON:
Ceci a l'avantage supplémentaire de l'absence de charge de la redirection si ce que vous faites n'a pas de sortie/non-sortie HTML.
OriginalL'auteur dragonmantank
Pour désactiver le rendu de l'affichage dans une action (l'action spécifique. Si vous le souhaitez pour l'ensemble de la commande de la mettre dans la méthode init):
Si vous utilisez la mise en page de la composante de ZF aussi ajouter ceci:
OriginalL'auteur rg88
Je ne pouvais pas comprendre votre code. dans votre modèle, vous appelez die(). pourquoi?
il va arrêter l'exécution. êtes-vous sûr que la ligne? de toute façon, si vous avez un contrôleur dans le Zend Framework et n'ont pas besoin de la vue, vous pouvez activer l'affichage de cette ligne:
maintenant, le contrôleur ne sera pas la recherche d'un script de vue pour afficher à l'utilisateur.
assurez-vous que vous appelez
après tout de votre contrôleur du travail est fait.
OriginalL'auteur farzad
Orignal Réponse:
Votre appel à:
Appelle le Redirecteur d'aide d'action, qui (sauf si vous avez configuré, il ne pas) l'appareil quitte automatiquement le script dès que les en-têtes sont écrites, de sorte que la vue ne sera jamais appelé ou de rendus, il n'y a pas besoin d'un script de vue.
Suivi de la Réponse:
Pour faire un appel à l'action sans l'envoi à l'utilisateur de l'autre "page", puis rediriger le dos encore une fois, vous aurez besoin d'utiliser un XMLHttpRequest (AJAX). Ces liens doivent fournir les informations dont vous avez besoin:
http://developer.mozilla.org/en/AJAX
http://www.ibm.com/developerworks/xml/library/wa-ajaxintro1.html
http://www.oracle.com/technology/pub/articles/schalk-ajax.html
Également jeter un oeil à certains frameworks JS qui font à l'aide de XMLHttpRequest croix-navigateur beaucoup plus facile:
http://www.prototypejs.org/
http://mootools.net/
Zend Framework en fait a un support intégré pour le Dojo JS cadre, que vous trouverez peut être plus facile:
http://framework.zend.com/manual/en/zend.dojo.html
http://www.dojotoolkit.org/
Ah OK, jetez un oeil à mon suivi de la réponse ci-dessus.
OriginalL'auteur Jack Sleight