как передать переменную от одного контроллера к другому в Code igniter
Я только начал изучать код воспламенитель .
Я хочу знать, как я могу передать переменную от одного контроллера(first_cont.php) на другой контроллер (second_cont.в PHP) ?
любая помощь будет оценили .
спасибо заранее :)
5 ответов
Это будет зависеть от обстоятельств. Если вы хотите сохранить данные в течение некоторого времени, то данные сеанса будут способом пойти. Однако, если вам нужно использовать его только один раз, Флэш-данные могут быть более подходящими.
первым шагом будет инициализация библиотеки сеансов:
$this->load->library('session');
затем сохраните информацию во флэш-данных:
$this->session->set_flashdata('item', $myVar);
наконец, во втором контроллере, получить данные:
$myVar = $this->session->flashdata('item');
очевидно, это означало бы, что у вас чтобы инициализировать библиотеку сеансов снова со второго контроллера или создать собственный базовый контроллер, который загружает библиотеку сеансов и наследует оба контроллера от этого.
Я думаю, что в codeigniter вы не можете передать переменную между двумя разными контроллерами. Одним из очевидных механизмов является использование данных сеанса.
хорошо, вот что-то о 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
}
в Codeigniter есть много способов передать значение от одного контроллера к другому.
вы можете использовать сеанс codeigniter для передачи данных с одного контроллера на другой контроллер.
для этого вы должны сначала включить библиотеку на сеанс!--6-->
$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;
}
вот и все....
Если вы используете сеанс в первом контроллере, то не отменяйте этот сеанс в первом контроллере, вместо этого сохраните значение, которое вы хотите в другом контроллере, например,
$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'];
вот как вы можете передавать значения от одного контроллера к другому....