如何在codeigniter中传递带有重定向的数据

rob*_*ins 11 php codeigniter

在我的控制器中我用这种方式.我想通过重定向将可变数据传递给控制器​​的索引函数

$in=1;
redirect(base_url()."home/index/".$in);
Run Code Online (Sandbox Code Playgroud)

我的索引功能是

function index($in)
{
    if($in==1)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到一些错误,如未定义的变量.
我怎么解决这个问题?

Rej*_*lam 20

使用会话在重定向时传递数据.CodeIgniter中有一个特殊的方法来做它叫做"set_flashdata"的方法

$this->session->set_flashdata('in',1);
redirect("home/index");
Run Code Online (Sandbox Code Playgroud)

现在你可以得到in索引控制器

function index()
{
 $in = $this->session->flashdata('in');
 if($in==1)
  {

  }
}
Run Code Online (Sandbox Code Playgroud)

请记住,此数据仅适用于重定向并在下一页请求时丢失.如果您需要稳定的数据,那么您可以使用带参数&GET的URL$this->input->get('param1')


Ari*_*014 8

所以在控制器中你可以拥有一个功能:

$in=1;
redirect(base_url()."home/index/".$in);
Run Code Online (Sandbox Code Playgroud)

在目标函数中,您可以像这样访问$ in值:

$in = $this->uri->segment(3);   
if(!is_numeric($in))
{
  redirect();       
}else{
   if($in == 1){

   }
}
Run Code Online (Sandbox Code Playgroud)

我把段(3)放在你的例子中,因为$ in是2个破折号.但是如果你有这样的链接结构:www.mydomain.com/subdomain/home/index/$in你将不得不使用segment(4).

希望有所帮助.