Php Codeigniter:将表单控制器传递给视图的数据背后的过程是什么?
我并不是在问语法和怎么做。 我是从以下方面得到的: 我需要问一下它是如何工作的,以及这个过程的原因是什么 我有一个带有func的控制器类Php Codeigniter:将表单控制器传递给视图的数据背后的过程是什么?,php,codeigniter,Php,Codeigniter,我并不是在问语法和怎么做。 我是从以下方面得到的: 我需要问一下它是如何工作的,以及这个过程的原因是什么 我有一个带有func的控制器类 public function index() { //echo 'hello world'; $this->load->model('Site_model'); var_dump($this->Site_model->getAll()); // just to troubleshoot $data[
public function index()
{
//echo 'hello world';
$this->load->model('Site_model');
var_dump($this->Site_model->getAll()); // just to troubleshoot
$data['a'] = $this->Site_model->getAll();
var_dump($data); // just to troubleshoot
$this->load->view('home', $data);
}
当我试图直接在视图中访问$data数组时
它抛出错误,需要以
为什么我们不能直接使用这个
public function index()
{
//echo 'hello world';
$this->load->model('Site_model');
var_dump($this->Site_model->getAll()); // just to troubleshoot
$data = $this->Site_model->getAll();
var_dump($data); // just to troubleshoot
$this->load->view('home', $data);
}
并在查看页面中以
的形式直接访问阵列后面使用的过程非常简单。它只使用了一个php函数
extract($data);
这样,所有键都可以用作视图上的变量
请参阅文档使用extract()的原因有很多:
$this->load->view('home',array('foo'=>$bar))代码>李>
这是在传递给另一个函数时保持相同的非全局变量名的最简单方法
实际上,您应该问,使用MVCWhy而不是第二个选项的目的是什么。。为什么提取。。这也可以满足这个标准吗?@shehzadbila,如果你真的学习了一些MVC的基础知识,你就会意识到控制器永远不应该将信息传递给视图@stackup没有什么问题,可以在您创建的任何框架中随意使用它。然而,Ellis实验室决定采用这种格式,可能是因为echo$title
看起来比echo$data['title']
更整洁,实际上出于好奇,我试过了。。它抛出错误未定义变量:dataSo此特定语法由ellis使用。。我还没有尝试过其他MVC。。多谢各位。另请看问题。你能澄清你的第一点吗。。比如如何在视图中访问该数组以及它的作用是什么application@stackup您可以将此数组视为变量的包装器来保存它们的名称。例如,在控制器中:$this->load->view('home',array('foo'=>5))
将变为$foo
,视图中的值为5
,依此类推。