【问题标题】:Passing an array and an object from a Controller to a View in CodeIgniter将数组和对象从控制器传递到 CodeIgniter 中的视图
【发布时间】:2016-12-09 05:32:54
【问题描述】:

我一直试图让 CodeIgniter 视图同时传递一个对象和一个数组,但是当我添加对象时它似乎中断了。

一般在 CodeIgniter 中,当您在 Controller:$data['title'] = 'Welcome to CodeIgniter' 中创建变量时,您会在 View 中访问该变量为:$title

我需要传递我通过以下方式检索的用户数据:

$data['title'] = 'welcome to codeigniter';
$this-db->where('id', $id);
$user = $this->db->get('users')->row();

$this->load->view('welcome', [
    'data' => $data,
    'user' => $user
]);

但是,当我进入我的视图时,$active 是未定义的,我必须通过 $data['title'] 访问它

我也尝试将所有内容添加到一个数组中:

$data = array(
     'title' => 'welcome to codeigniter',
    'active' => 'home', 
     'user' => $user,
);

但是,它不起作用。

如果这没有意义,我深表歉意,我会尽力解释我的问题,如果您需要更多信息,请告诉我。

谢谢, 月焰

【问题讨论】:

  • 在您的第一个示例中,您没有在视图数组中定义 $active ,因此这是预期的。在您的第二个示例中,“它不起作用”实际上是什么样的?
  • 抱歉,我要输入$title,而不是$active..

标签: php codeigniter


【解决方案1】:

你可以这样做:

$data['title'] = 'welcome to codeigniter';
$this-db->where('id', $id);
$data['user'] = $this->db->get('users')->row();
$this->load->view('welcome', $data );

在视图中你可以像这样访问:

echo $title; //will print the 'welcome to codeigniter'
print_r($user); // will hold the resource of query

【讨论】:

    【解决方案2】:
    $data['title'] = 'welcome to codeigniter';
    $this-db->where('id', $id);
    $user = $this->db->get('users')->row();
    $data[user]=$user;
    $this->load->view('welcome', $data );
    

    您可以在视图中使用 $title 和 $user

    【讨论】:

    • 这行不通,因为我几乎可以肯定 php 会尝试将 [data][user] 处理为常量......我尝试它只是为了仔细检查,是的。
    • 是的,使用可以使用 $data 变量 onlu istead id $data_new 。但它也会起作用(不推荐),因为@Suresh Kamrushi 的回答是最有效的。
    • 我知道你在做什么,它与现在接受的答案非常相似,但是你需要将 $data[user]=$user 更改为 $data['user']=$user`
    【解决方案3】:

    //控制器

    $data['title'] = 'welcome to codeigniter';
    $data['user'] = $this->db->get('users')->row();
    
    $this->load->view('welcome', $data);
    

    //查看

    <?=$title?>
    <?=print_r($user)?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 2011-09-12
      • 2011-09-09
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      相关资源
      最近更新 更多