为什么我在CodeIgniter中遇到“数组到字符串转换”错误?

时间:2013-05-19 04:44:07

标签: php codeigniter

我目前遇到此错误的问题:

  

数组到字符串转换

以下是代码:

控制器:

function get_tariff()
{      
   $this->load->model('model_tariff');
   $data['destination']=$this->input->post('dest',true);
   $data['lines']=$this->input->post('lines',true);
   $data['weight']=$this->input->post('weight',true);
   $data['priceperkg']=$this->model_tariff->get_tariff();
   $data['pricetotal']=$data['priceperkg']* $data['weight'];
   $this->load->view('tariff_result',$data);
}

模型:

function get_tariff()
{        
   $destination=$this->input->post('dest');
   $lines=$this->input->post('lines');
   $weightt=$this->input->post('weight');
   $this->db->select('price');
   $this->db->from('view_tariff');
   $this->db->where('city_name',$destination);
   $this->db->where('lines',$lines);
   $price=$this->db->get();
   return $price->result();    
}

视图:

Price per kg <?php echo $priceperkg?>;
Bayar total <?php echo $pricetotall?>;

2 个答案:

答案 0 :(得分:1)

CodeIgniter数据库方法result()返回一个对象数组,而不是字符串文字(价格)。你需要做一些进一步的转换。例如,如果您期望单行,则尝试返回单个对象的row()。然后,您可以引用属性price

return $price->row()->price;

或者,您可以采取其他几种方式。

答案 1 :(得分:0)

阅读CodeIgniter Active Result function

此函数在失败时将query result作为对象数组空数组返回。通常你会在http://ellislab.com/codeigniter/user-guide/database/results.html中使用它,如下所示:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

上述功能是 result_object()的别名。

如果您运行的查询可能不会产生结果,建议您先测试结果:

$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->title;
      echo $row->name;
      echo $row->body;
   }
}