如何在codeigniter模型返回结果()的结果中添加新密钥

时间:2017-03-25 05:31:03

标签: php codeigniter

我的模型中有一个函数可以获取我获取的所有公司详细信息 我必须在我的返回结果()中添加一个新的键city_name,我该如何添加?我很困惑,但我没有得到任何可用的例子。

function xxxx($search=array(),$page,$limit){
    $this->db->select("*");
    $this->db->from("xxx");
    $this->db->join("xx","xx.xx=xxx.xx");

    $this->db->limit($limit,$page);
    $company_data = $this->db->get();
    if($company_data->num_rows()){
        return $company_data->result();
    }
    else{
        return 0;
    }
}

2 个答案:

答案 0 :(得分:0)

更改以下行:

return $company_data->result();    // It return Stc Class Object

return $company_data->result_array();   // Now it returns an array

现在您可以使用array_push()函数,它会将一个或多个元素插入到数组的末尾。 或者只是使用:

$company_data['index'] = value;

答案 1 :(得分:0)

让您的模型保持一致return $company_data->result()

在您的控制器中,您需要根据获得的结果数量进行迭代,并为对象添加新密钥。(result()方法返回Standard Class Object)。

function yourControllerMethod()
{
  $company_data = $this->your_model->xxx(search_array, $page, $limit);
  if(!empty($company_data)
  {
    foreach($company_data as $cd)
    {
       $cd->city_name = "pune"; // or anything you want
    }
  }
  var_dump($company_data);
}

尝试此操作为结果添加新密钥。

编辑:

您问过,您的对象中没有city_name个密钥。 是的,你没有。上面的代码在您的对象中添加了一个键。 就像数组一样。

$temp = array();
$temp["id"] = 1;

在此代码中,最初数组为空,下一个语句将id添加为数组中的键。