45 votes

Codeigniter : appeler une méthode d'un contrôleur à partir d'un autre

J'ai deux contrôleurs a y b .

Je voudrais appeler une méthode du contrôleur a d'une méthode de contrôle b .

Quelqu'un peut-il m'expliquer comment y parvenir ?

0 votes

Même si ce n'est pas la meilleure approche, elle est modulaire : ( [stackoverflow.com/a/6091913/1057527) [http://stackoverflow.com/a/](http://stackoverflow.com/a/6091913/1057527)[http://stackoverflow.com/a/6091913/1057527])

0 votes

Il y a un fil de discussion pertinent sur le site Forum EllisLab

0 votes

Le lien de @machineaddict est cassé. Peut-être corriger le markdown ? Editar : Ah, oui. Je suis trop vieux pour faire ça. :-( stackoverflow.com/questions/6091100/ C'est le bon lien.

4voto

Murtnowski Points 1190

Vous devez créer une aide ou une bibliothèque qui peut être chargée afin que le contrôleur puisse partager des fonctions.

http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

http://ellislab.com/codeigniter/user-guide/general/helpers.html

4voto

Vous pouvez faire comme

$result= file_get_contents(site_url('[ADDRESS TO CONTROLLER FUNCTION]'));

Remplacer [ADDRESS TO CONTROLLER FUNCTION] par la façon dont nous utilisons dans site_url();

Vous devez echo output dans la fonction de contrôleur au lieu de return .

4voto

user3261767 Points 21

Vous pouvez utiliser la fonction redirect(). Comme ceci

class ControllerA extends CI_Controller{
    public function MethodA(){
       redirect("ControllerB/MethodB");
    }
}

0voto

amanvsingh Points 1

Contrôleur à prolonger

require_once(PHYSICAL_BASE_URL . 'system/application/controllers/abc.php');

        $report= new onlineAssessmentReport();
        echo ($report->detailView());

-1voto

Vous pouvez utiliser l'URL de redirection vers le contrôleur :

Class Ctrlr1 extends CI_Controller{
public void my_fct1(){
redirect('Ctrlr2 /my_fct2', 'refresh');
}
}

Class Ctrlr2 extends CI_Controller{
public void my_fct2(){
$this->load->view('view1');
}
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X