как передать переменную от одного контроллера к другому в воспламенителе кода

Я только начал изучать Code Igniter.

Я хочу знать, как передать переменную с одного контроллера (first_cont.php) на другой контроллер (second_cont.php)?

Любая помощь будет оценена по достоинству.

Заранее спасибо :)

Ответ 1

Это будет зависеть от обстоятельств. Если вы хотите сохранить данные в течение некоторого времени, то данные сеанса будут идти по пути. Однако, если вам нужно использовать его только один раз, данные флэш-памяти могут быть более уместными.

Первым шагом будет инициализация библиотеки сеансов:

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

Затем сохраните информацию во флэш-данных:

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

Наконец, во втором контроллере выберите данные:

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

Очевидно, это означало бы, что вам придется либо инициализировать библиотеку сеансов снова со второго контроллера, либо создать собственный базовый контроллер, который загружает библиотеку сеансов и наследует оба ваших контроллера.

Ответ 2

Я думаю, что в codeigniter вы не можете передавать переменную, между двумя разными контроллерами. Одним из очевидных механизмов является использование данных сеанса.

Ответ 3

Хорошо, вот что-то о MVC, большинство из которых будет легко цитировать:

Контроллер предназначен для ввода ввода, модель для вашей логики, и для отображения отображается.

Теперь, строго говоря, вы не должны отправлять данные с контроллера на другой. Я не могу придумать никаких случаев, когда это требуется.


Но, если это абсолютно необходимо, вы можете просто использовать redirect для просто перенаправления на другой контроллер.

Что-то вроде:

// 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
}

Ответ 4

В Codeigniter существует много способов передать значение от одного контроллера к другому.

Вы можете использовать sessionignign Session для передачи данных от одного контроллера другому контроллеру.

Для этого вы должны сначала включить библиотеку для сеанса

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

Затем вы можете установить значение данных вспышки, используя имя переменной.

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

Их можно получить, когда захотите, используя сеанс codeigniter flashdata

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

Второй вариант codeigniter позволяет перенаправить URL-адрес с controll с именем контроллера, именем метода и значением, а затем вы можете получить значение в другом контроллере.

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

Затем вы можете получить значение в другом контроллере

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

Все это....

Ответ 5

Если вы используете сеанс в первом контроллере, тогда не отключите этот сеанс в первом контроллере, вместо этого сохраните значение, которое вы хотите на другом контроллере,

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

затем перезагрузите этот сеанс в другом контроллере, как

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

это то, как вы можете передавать значения с одного контроллера на другой.