codeigniter+HMVC de la croix-module de contrôleur d'appel->méthode
Je suis en tirant tous mes cheveux... Ont été à la recherche à chaque thread, vous serais reconnaissant si quelqu'un peut m'indiquer un exemple de travail.
En fonction de la doc: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
Je peux appeler un autre module->contrôleur à l'aide d'
modules::run('module/controller/method', $params);
modules::load('module/controller/method', $params);
or
$this->load->module('module/controller');
$this->controller->method();
Problème: la "méthode()" n'est jamais appelée. seul constructeur du contrôleur est appelé à chaque fois.
L'objectif est de construire autonome les accidents de la route en tant que module et de l'utilisation par d'autres contrôleurs.
Mais peu importe ce que je fais, il appelle le constructeur, la méthode n'est pas appelée.
J'ai commencé à utiliser HMVC il y a quelques semaines, j'ai oublié quelque chose dans la doc ou il n'est pas utilisé de cette façon?
Voici la configuration:
modules
|--ztest1
| |--controller/c1.php
|--ztest2
|--controller/c2.php
class C1 extends MX_Controller {
function __construct() {
parent::__construct();
}
function index () {
Modules::run('ztest2/c2/testc2/');
//Modules::load('ztest2/c2/testc2/');
//$this->load->module('ztest2/c2/testc2/');
//$this->c2->testc2();
}
}
class C2 extends MX_Controller {
function __construct() {
parent::__construct();
echo __FILE__." //".__CLASS__."/".__FUNCTION__.PHP_EOL;
}
function testc2(){
echo __FILE__." //".__CLASS__."/".__FUNCTION__.PHP_EOL;
}
}
output:
/app/modules/ztest2/controllers/c2.php //C2/__construct
remarque supplémentaire: pas d'erreur ou d'avertissement avec le script. Il vient tranquillement appelle le constructeur.
OriginalL'auteur Reed | 2013-02-18
Vous devez vous connecter pour publier un commentaire.
Ce HMVC fonctionne bien pour moi. Je suis en train de travailler sur un projet à l'aide de cette HMVC maintenant.
Il suffit d'éditer
third_party/MX/Modules.php
comme indiqué dans ce lien ci-dessous, et dites-moi la réponse.https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/pull-request/5/return-error-messages-instead-of-logging/diff
Votre problème a été résolu?
C'est résolu. Je l'ai trouver dans la réponse ci-dessous. J'ai accepté votre réponse, car elle m'a aidé à corriger de cette chose. Ne sais pas HMVC jeter erreur pour ouvrir une session seulement. merci!
Maintenant, je travaille sur un projet avec cette HMVC donc je suis en train d'apprendre par le biais de ce
L'on a accepté la réponse devrait être la réponse qui résout le problème.
OriginalL'auteur Mansoorkhan Cherupuzha
Merci pour MC astuce, j'ai enfin trouvé la cause. HMVC doc, en effet, manque de quelques exemples pour les débutants.
Pour n'importe qui qui peut trouver ce fil dans l'avenir, l'utilisation correcte ici:
Je ne comprends pas pourquoi la méthode 3 a échoué lorsque j'ai d'abord essayer... peut-être parce que j'ai redémarré HTTPD?
Ce n'est pas de travail pour moi 🙁
ce n'est pas de travail pour vous? tous les 3 méthodes?
Aucun d'entre eux 🙁
C'est un super explication. Dommage que je ne peux donner un pouce vers le haut. 🙂
OriginalL'auteur Reed
Je suis tombé sur le même problème. Assurez-vous de vérifier la capitalisation de vos répertoires et les et les contrôleurs. Il n'est pas sensible à la casse pour les différences entre le module et le nom du contrôleur.
OriginalL'auteur WindDude
Après quelques tentatives pour parvenir à l'appel d'un contrôleur qui n'est pas situé à l'intérieur de n'importe quel module.
Modules::run('../Contrôleur/méthode');
OriginalL'auteur
Je suis nouveau sur CI en tant que bien, et j'ai pensé que j'ai eu le même problème. Le Script ne semble pas être en cours d'exécution. (pas de sortie html).
Ce qui peut être évident pour beaucoup d'entre vous, mais j'ai perdu deux heures à chercher une réponse.
OriginalL'auteur Chas
ainsi, Selon les documents qu'il dit de copier le contrôleur par défaut du contrôleur de dossier et déplacer vers les modules de contrôleur.
Alors maintenant, comment puis-je faire fonctionner le contrôleur qui a été déplacé vers les modules quand je lance ses cours d'exécution à partir de la valeur par défaut du contrôleur de fichier si le fichier supprimé ne fonctionne pas alors comment faire fonctionner le contrôleur à l'intérieur du module en tant que contrôleur par défaut à exécuter.
Donc ai-je besoin de mentionner les modules de nom trop dans l'itinéraire
OriginalL'auteur TaraGurung