Comment passer une variable d'un contrôleur à l'autre dans l'allumeur de Code

je viens de commencer à apprendre à allumer le Code .

je veux savoir comment passer une variable d'un contrôleur(first_cont.php) à un autre contrôleur (second_cont.php)?

Toute aide serait appréciée .

Merci d'Avance :)

10
demandé sur Aditi 2012-10-10 13:54:29

5 réponses

cela dépendra des circonstances. Si vous souhaitez conserver les données pendant un certain temps, puis les données de session serait la voie à suivre. Cependant, si vous n'avez besoin de l'utiliser qu'une seule fois, les données flash peuvent être plus appropriées.

la première étape serait d'initialiser la bibliothèque de session:

$this->load->library('session');

puis stocker les informations dans les données flash:

$this->session->set_flashdata('item', $myVar);

enfin, dans le second contrôleur, récupérez les données:

$myVar = $this->session->flashdata('item');

évidemment, cela voudrait dire que vous auriez pour initialiser à nouveau la bibliothèque de session à partir du second contrôleur, ou pour créer votre propre contrôleur de base qui charge la bibliothèque de session et dont les deux contrôleurs héritent.

13
répondu Matthew Daly 2012-10-10 10:14:31

je pense que dans codeigniter vous ne pouvez pas passer la variable, entre deux Controllers différents. Un mécanisme évident est d'utiliser des données de session.

7
répondu Kalpesh Patel 2012-10-10 09:58:08

Ok, voici quelque chose à propos de MVC qui sera le plus facile à citer:

un Controller est pour la prise d'entrée, un model est pour votre logique, et une view est pour l'affichage.

maintenant, à proprement parler, vous ne devriez pas vouloir envoyer des données d'un contrôleur à un autre. Je ne peux pas penser à tous les cas où c'est nécessaire.


Mais, si c'est absolument nécessaire, alors vous pouvez simplement utiliser redirect simplement rediriger vers l'autre contrôleur.

quelque Chose comme:

// some first_cont.php code here
redirect('/second_cont/valuereciever/value1')


// some second_cont.php code here
public function valureciever($value){
    echo $value; // will output value1
}
7
répondu Prasanth 2012-10-10 10:07:12

dans Codeigniter il y a plusieurs façons de passer la valeur d'un contrôleur à l'autre.

vous pouvez utiliser la Session codeigniter pour transmettre les données d'un controller à un autre controller.

Pour cela, vous devez tout d'abord inclure la bibliothèque pour la session

$this->load->library('session');

alors vous pouvez définir la valeur des données flash en utilisant le nom de la variable.

// Set flash data 
$this->session->set_flashdata('variable_name', 'Value');

Eux, vous pouvez obtenir la valeur où vous voulez en utilisant le codeigniter session flashdata

// Get flash data
$this->session->flashdata('variable_name');

deuxième Option codeigniter vous permet de rediriger l'url de controll avec le nom du contrôleur, le nom de la méthode et la valeur et ensuite vous pouvez obtenir la valeur dans un autre contrôleur.

// Passing the value 
redirect('/another_controller_name/method_name/variable');

alors vous pouvez obtenir la valeur dans un autre controller

public function method_name($variable)
{
echo $variable;
}

Que tous les....

4
répondu Vivek Pandey 2018-02-10 06:25:53

si vous utilisez session dans le premier controller alors ne désactivez pas cette session dans le premier controller, stockez plutôt la valeur que vous voulez dans l'autre controller comme,

$sess_array = array('value_name1' => 'value1', 'value_name2' => 'value2');
$this->session->set_userdata('session_name', $sess_array);

puis rechargez cette session dans l'autre controller comme

$session_data= $this->session->userdata('session_name');
$any_var_name = $session_data['value1'];
$any_var_name = $session_data['value2'];

c'est ainsi que vous pouvez passer des valeurs d'un contrôleur à un autre....

1
répondu Mohammed Dawood 2015-09-08 13:36:47