【发布时间】:2013-12-15 03:29:03
【问题描述】:
我在使用 PDO::FETCH_CLASS 时遇到了一点问题。我需要它来调用 __construct(array $data) 并使用从数据库返回的值传递数组。
我的数据库是这样的:
order -> id;
order_item -> id, order_id;
这就是我从数据库中检索的方式:
<?php
public function find($id) {
$stmt = $this->db->prepare("SELECT * FROM orderItem WHERE id = :id");
$stmt->setFetchMode(\PDO::FETCH_CLASS, 'Store\Model\OrderItem');
$stmt->execute(array('id' => $id));
return $stmt->fetch();
}
问题在于 PDO::FETCH_CLASS 正在创建:
$orderItem->id;
$orderItem->order_id;
代替
$orderItem->id;
$orderItem->order->id;
我做了一个 __construct(array $data) 方法,它会转:
<?php
$orderItem = new OrderItem(
array(
'id' => 1,
'order_id' => 10
)
);
进入预期(同上):
$orderItem->id;
$orderItem->order->id;
那么有没有办法让 PDO 调用 __construct() 传递和关联数组?
【问题讨论】:
标签: php pdo constructor