将对象的隐式数组转换为单个对象php
问题描述:
这是一个很长时间的头痛问题。我在codeigniter php活动记录中有以下代码。将对象的隐式数组转换为单个对象php
$this->db->select('*');
$this->db->from('orders');
$this->db->join('order_detail', 'order_detail.order_id = orders.o_id');
$this->db->join('profiles','profiles.id = orders.buyer_id','left');
$this->db->where('orders.o_id', $order_id);
$this->db->group_by('orders.o_id');
$query = $this->db->get();
$order_details_by_order_id_result = (object)$query->result();
结果
的var_dump($ order_details_by_order_id_result);退出; //见下面
object(stdClass)[34]
public 0 =>
object(stdClass)[37]
public 'xx_id' => string '13' (length=2)
public 'yy_iud' => string '22' (length=10)
public 'order_total' => string '25.00' (length=5)
public 'shipto_fname' => string 'dan' (length=3)
public 'shipto_lname' => string 'theman' (length=6
我控制器上我叫上面的函数如下:
$order_details = $this->orderdetails->get_orderdetail_of_buyer($oid);
$data['order_details'] = $order_details; //pass this to the view
$this->load->view('dashboard/order_detail_view',$data);
,我想将结果发送到视图(/order_detail_view.php) Order #o_id;?>
$ order_details-> o_id; //为什么地球上这个表情告诉我错误
我想这个问题是
对象(stdClass的)[34] 公共0 =>
我如何能解决这个问题,因为我只取一个一次订购。谢谢
答
在CodeIgniter中,$query->result()
返回一个对象数组,每个元素表示结果集中的行。无需将其转换为对象;使用...
$result = $query->result();
if ($result) {
$order_details_by_order_id_result = $result[0];
}
...改为。
为了您的原代码,实际上没有办法来获取内容对象:是从数组转换不要用数字键发挥很好的结果PHP对象(你可以阅读更多关于这个here)。
答
row()方法将为您查询返回单行。
$query = $this->db->get();
if ($query->num_rows() > 0)
{
$row = $query->row();
echo $row->xx_id;
}
+0
你以前的答案应该比这更适合 – danielad
我想我们需要更多的代码。我没有在任何地方看到对名为'$ order_details'的对象的引用,所以我们不知道它为什么不包含值。 –
编辑请参阅 – danielad