Tôi có một lớp học sử dụng các phương pháp ma thuật để lưu trữ các thuộc tính. Dưới đây là một ví dụ đơn giản:Sử dụng PDO :: FETCH_CLASS với các phương pháp ma thuật
class Foo {
protected $props;
public function __construct(array $props = array()) {
$this->props = $props;
}
public function __get($prop) {
return $this->props[$prop];
}
public function __set($prop, $val) {
$this->props[$prop] = $val;
}
}
Tôi đang cố gắng để nhanh chóng đối tượng của lớp này cho mỗi hàng cơ sở dữ liệu của một PDOStatement
sau khi nó được thực hiện, như thế này (không hoạt động):
$st->setFetchMode(PDO::FETCH_CLASS, 'Foo');
foreach ($st as $row) {
var_dump($row);
}
Vấn đề là PDO::FETCH_CLASS
dường như không kích hoạt phương thức ma thuật __set()
trên lớp của tôi khi nó thiết lập các giá trị thuộc tính.
Làm cách nào để hoàn thành hiệu ứng mong muốn bằng PDO?
bản sao có thể có của [PHP PDO: Tìm nạp dữ liệu dưới dạng đối tượng - thuộc tính được gán trước khi __construct được gọi. Điều này có đúng không?] (Http://stackoverflow.com/questions/2862279/php-pdo-fetching-data-as-objects-properties-assigned-before-construct-is-ca) – outis