Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
je voudrais accéder à une méthode qui se trouve dans "IndexController" depuis mon controller "ProjetsController", mais je ne sais pas comment faire.
J'ai essayé ça dans une de mes méthodes de mon controller "ProjetsController" :
$time = new Application_Controller_IndexController(); $temps = $time->addheures('00:00:00', $temps);
ou ça :
Application_Controller_IndexController::addheures('00:00:00', $temps);
Sans succès, il me renvoie tout le temps l'erreur :
Fatal Error : Class 'Application_Controller_IndexController' not found in ...
Merci d'avance.
Dernière modification par jacka (19-09-2012 16:12:39)
Hors ligne
bonjour,
je ne pense pas que cela soit possible en Zend. il faut voir du côté des aides d'actions.
dans ton aide d'action il te faut définir la méthode addheures() ensuite l'appeler directement depuis n'importe quel contrôleur.
Hors ligne
Comme le dit "amiss", si tu dois utiliser une fonction a plusieurs endroit dans différents contrôleur, alors il te faut une aide d'action
Hors ligne
Ca marche nikel
En revanche je ne sais pas trop si je suis passé par des aides d'actions. Il semblerait que ce soit plutôt des aides de vues...
Voici ce que j'ai fait, si jamais quelqu'un repasse par ici et pour qu'on me critique si nécessaire :
J'ai ajouté à mon bootstrap.php la fonction suivante :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initActionsHelpers(){ Zend_Controller_Action_HelperBroker::addPath( APPLICATION_PATH . '/views/helpers', 'Application_Controller_Helper_' ); } }
Dans mon dossier "application/views/helpers" j'ai ajouté une fichier "index.php" dans lequel j'ai mis le code suivant :
<?php class Application_Controller_Helper_Index extends Zend_Controller_Action_Helper_Abstract{ public function nomfonction1(){ //Le code de ma fonction } public function nomfonction2($param1, $param2){ //Le code de ma fonction } } ?>
Et dans mon controlleur :
$temps = $this->_helper->index->nomfonction2($param1, $param2);
Merci
Hors ligne
C'est pas vraiment ça c'est bien une aide d'action mais tu l'a placé dans un dossier censé contenir les aides de vues. De plus si tu l'a nommé index.php et non Index.php tu aura un soucis si tu passe ton appli sur un serveur unix.
Hors ligne
Pages: 1