如何从控制器本身中的模型返回的数组中读取特定字段

时间:2016-08-08 22:44:38

标签: php html mysql codeigniter

我在控制器中有一个功能" thisTopic"有以下内容:

$viewdata = array();
$viewdata['reply']   = $this->disc->get_all_replies($topic_id);
$viewdata['firstReply']= $this->disc->get_firstReply(); 

在模型中:

public function get_all_replies($topic_id){

    return $results =  $this->db->select('*')
                     ->from('disc_replies')
                     ->join('users', 'users.id = disc_replies.users_id')
                     ->where('topic_id',$topic_id)
                     ->get()->result();
}

public function get_firstReply($reply_id){

    return $results =  $this->db->select('*')
                     ->from('disc_firstReply')
                     ->join('users', 'users.id = disc_firstReply.users_id')
                     ->where('reply_id',$reply_id)
                     ->get()->result();
}

disc_replies表格包含以下列:

1. reply_id
2. topic_id
3. users_id
4. replied_on

来自$viewdata['reply']我想读取第一行的reply_id字段,并将其作为参数发送给get_firstReply()函数。

这是我到目前为止所尝试的:

$viewdata['firstReply']= $this->disc->get_firstReply($viewdata['reply'][0]['reply_id']);

$viewdata['firstReply']= $this->disc->get_firstReply($viewdata['reply']['reply_id']);

但没有任何作用,任何帮助解决这个问题的人都非常感激。提前致谢

1 个答案:

答案 0 :(得分:0)

为了在codeigniter中使用此$viewdata['reply'][0](0指向数组),您必须将数组格式化为目标数组。

这个

->get()->result();

应该改为

->get()->result_array();
  

您可以使用此print_r($viewdata['reply'])

检查数组的格式
  

确保$viewdata['reply']不为空