Php 如何将类变量传递给codeigniter中的视图?

Php 如何将类变量传递给codeigniter中的视图?,php,codeigniter,Php,Codeigniter,我有如下代码: class Abc extends CI_Controller { public $data; public function step1() { $this->load->model('modelA'); $modelT = new functionInsideModel(); $data['1'] = $modelT -> F1(); $data['2'] = $modelT -> F2(); $data

我有如下代码:

class Abc extends CI_Controller {
  public $data; 

public function step1()
{
    $this->load->model('modelA');
    $modelT = new functionInsideModel();
    $data['1'] = $modelT -> F1();
    $data['2'] = $modelT -> F2();
    $data['3'] = $modelT -> F3();
    $this->load->view('header');
    $this->load->view('step1',$data);
    $this->load->view('footer');
}
public function step2()
{
    if(isset($_POST['submit']))
    {
        $this->data['step1Check'] = true;
        $this->load->view('header');
        $this->load->view('step2');
        $this->load->view('footer');
    }


}
}

在第1步中编辑表单后,客户继续第2步。我需要实现一个类变量$data['step1'],因此如果这个变量为true,这意味着step1中的表单已经完成,step1视图将不同

因此,step2中的客户希望单击step1以查看插入的信息是否正确,因为客户已经在step2中,$data['step1']为真,step1视图将不同

$data变量是一个类变量,因此它在控制器的step1函数中可见,但我不能在step1视图中使用它


我如何解决这个问题

首先,我建议您将$data实例化为对象或数组

之后,将使用函数视图的第二个参数将数据数组传递给视图模板

$data=数组 “标题”=>“我的标题”, “标题”=>“我的标题”, '消息'=>'我的消息' ; $this->load->view'header',$data; $this->load->view'step2',$data; $this->load->view'footer',$data; 在您的视图中,您可以在view php文件中使用以下命令访问数组/对象中的数据,前面不带$data:

//$data['title'] echo$标题; //$data[“标题”] echo$标题; //$data['message'] 回声$信息; 我会这样做的

class Abc extends CI_Controller {
  public $data; 

public function step1()
{
    $this->data['step1Check'] = (isset($_SESSION['step1Check']) && $_SESSION['step1Check']);
    $this->load->model('modelA');
    $modelT = new functionInsideModel();
    $data['1'] = $modelT -> F1();
    $data['2'] = $modelT -> F2();
    $data['3'] = $modelT -> F3();
    $this->load->view('header');
    $this->load->view('step1',$this->data);
    $this->load->view('footer');
}
public function step2()
{
    if(isset($_POST['submit']))
    {
        $_SESSION['step1Check'] = true;
        $this->load->view('header');
        $this->load->view('step2');
        $this->load->view('footer');
    }


}
}
通过这种方式,您可以将其保存在会话中,并在第1步的下一次加载中使用,这不会给您任何警告。 您还需要在CodeIgniter的配置中启动会话驱动程序


然后,要在视图中使用,只需使用$step1Check

即可将变量作为$this->load->view函数中的第二个参数传递。Wangdong该变量已作为第二个param$数据传递。在视图中,我可以看到step1函数中初始化的所有$data变量,但是当我尝试使用$data['step1Check'时,出现了以下错误$step1Check在视图中:严重性:注意消息:未定义变量:STEP1CHECKI如果加载步骤1,然后加载步骤2,然后再次加载步骤1,$data变量将在每次请求时重新启动,因此$data为空。您需要的是会话变量,这样当您转到步骤2时,您可以保存步骤1已完成,并在步骤1中检查会话是否已完成是的,我理解…我太笨了…非常感谢!问题是我试图在step1函数中使用step2函数中初始化的变量,但是由于$data变量是一个类变量,因此在step1函数中应该是可见的。