Пробовал использовать сеттеры, но поскольку жесткий newbie в ООП, то попал впросак...
class handler {
... SELECT * FROM
return $stmt->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'person');
//return $stmt->fetchAll(PDO::FETCH_INTO, 'person');
}
class person {
public $surname;
public $id;
public $country;
public $status;
function __construct($surname", $id, $country", $display) {
$this->surname=$surname;
$this->id=$id;
$this->country=$country;
$this->status=$display;
}
}
Как можно используя SELECT * создать массив объектов именно с определенным набором свойств?...
в таблице 20 полей, мне нужно определить 4..
раньше я просто выбирал ключи полей, задавал в одном месте массив $allowed - и далее if (in_array) ну и т.д.
Как это можно реализовать в ООП варианте?
пробовал различные варианты с __set, но не срослось, да и не шибко хвалят...
если колхоз, то не пинайте сильно - просто подскажите...-)
UPD:
в handler
public $params = array('surname','id','country','display' );
...
return $stmt->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'person',array($this->params));
в person
class person {
public $status;
function __construct() {
}
}
Добавлять - да, добавляет - но никак не отфильтровать.... если добавлять PROPS LATE, то конструктор должен вызываться до назначения свойств... я уже чего в него только не прописывал(
Как было 20 полей так и осталось.....