【问题标题】:How does CodeIgniter send information from a Model to a View with the Controller?CodeIgniter 如何通过控制器将信息从模型发送到视图?
【发布时间】:2011-12-23 22:50:59
【问题描述】:

当我调用控制器并调用模型时,模型会从我的数据库中返回分配给控制器中某些内容的信息。

但是它如何“发送”到视图进行渲染呢?例如,当我将 $data 数组发送到 my_view.php 时。它是如何到达那个页面的,所以,我猜,我可以做一些事情,比如使用提取来获取我的个人变量。

我真的在 php 级别询问,您将如何发送该数据(以便我可以学习)。该视图如何知道我发送的内容?

谢谢。

【问题讨论】:

  • 也许你应该阅读the code
  • 是的,它基本上是在包含文件的上下文中提取()您传递给视图的数据对象/数组的每个键。在较新版本的 CI 中,这些值对所有后续视图都是持久的,您可以使用 $this->load->get_var('variable name') 获取特定的“变量”

标签: php codeigniter


【解决方案1】:

您必须在加载时将该 $data 数组作为第二个参数“发送”到视图。

$data['user'] = array(
    'name'   => 'Tom Jones',
    'gender' => 'male'
);

$this->load->view('blogview', $data);

然后,数组的内容在视图中通过它们对应的键值访问

<?php echo $user['name']; ?>

查看文档了解更多详情:http://codeigniter.com/user_guide/general/views.html

【讨论】:

    【解决方案2】:

    所有php视图的一般模式是这样的:

    function render_view($__filename, $__data) {
        extract($__data);
        include $__filename;
    }
    

    基本上这就是 CodeIgniter 的工作方式,但它使用加载器来查找视图文件名并包含输出缓冲选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多