Как передать данные с перенаправлением в codeigniter
в моем контроллере я использовал этот способ. я хочу передать переменные данные в мою индексную функцию контроллера через redirect
$in=1;
redirect(base_url()."home/index/".$in);
и моя функция ИНДЕКС
function index($in)
{
if($in==1)
{
}
}
но я получаю некоторые ошибки, такие как неопределенные переменные.
Как я могу это решить?
3 ответов
таким образом, в контроллере вы можете иметь одну функцию:
$in=1;
redirect(base_url()."home/index/".$in);
и в целевой функции вы можете получить доступ к значению $in следующим образом:
$in = $this->uri->segment(3);
if(!is_numeric($in))
{
redirect();
}else{
if($in == 1){
}
}
Я ставлю сегмент (3), потому что на вашем примере $in после 2 тире. Но если у вас есть, например, эта структура ссылок:www.mydomain.com/subdomain/home/index/$in
вам придется использовать сегмент(4).
надеюсь, что это поможет.
использовать сессии для передачи данных при перенаправлении. В CodeIgniter есть специальный метод, который называется "set_flashdata"
$this->session->set_flashdata('in',1);
redirect("home/index");
вы можете узнать in
на контроллере индекса, как
function index()
{
$in = $this->session->flashdata('in');
if($in==1)
{
}
}
помните, что эти данные будут доступны только для перенаправления и потеряны при следующем запросе страницы. Если вам нужны стабильные данные, вы можете использовать URL с параметром & GET $this->input->get('param1')
больше информации было бы очень полезно, Так как это должно работать.
вещей, которые вы можете проверить:
- ваш контроллер называется home.РНР? Собираюсь
redirect(base_url()."home");
показывает вашу домашнюю страницу? -
сделайте свою функцию индекса общедоступной.
public function index($in) { .... }