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['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'],所以如果这个变量为真,那就意味着step1中的表单已经完成,step1视图会有所不同。
所以,step2中的客户想要点击step1查看插入的信息是否正常,因为客户已经在step2中$data['step1']为真,step1视图会有所不同。
$data 变量是一个类变量,所以它在控制器的 step1() 函数中是“可见的”,但我不能在 step1 视图中使用它。
我该如何解决这个问题?
解决方案
我会这样做
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 步的下一次加载中使用它,这不会给您任何警告。您还需要在 codeiginiter 的配置中启动会话驱动程序。
然后在您的视图中使用只需使用$step1Check
推荐阅读
- if-statement - Power BI-DAX measure-Table Condition 基于多个 if
- reactjs - 为什么 Express GET 请求返回 HTML?
- macros - 如何将 tiddlywiki 小部件的输出作为输入传递给宏?
- c++ - 仅当内存地址不变时才重新分配
- excel - Excel 公式:返回真假值的范围
- python - 由于“AttributeError:‘NoneType’对象没有属性‘properties’”,Kivy 程序无法运行
- javascript - 在我输入后,我的数据被接收为空
- haskell - Haskell,用 foldr 实现任何功能
- neural-network - 如何使用一条 ROC 曲线评估多重测试
- javascript - 警告:使用 auth0 登录时,无法对未安装的组件执行 React 状态更新