MisterN 12 апреля 2015 2 4
Народ, ткнити носом, если обсуждалось. Вообще даже не знаю, стоит ли спрашивать. Но это реально меня напрягает в переходе на процессоры. Хотя возможно, тут психоаналитик нужен, а не программистов совет.
Я привык делать запрос вот таким образом

$q=$modx->newQuery('MyClass');

$q->select(array(
        'id',
        'json',
));

$q->prepare();

//- fetchAll

$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($res as $k=>$v) {
    print_r($v);
}

// //- getCollection

// $res = $modx->getCollection('MyClass', $q);

// foreach ($res as $k=>$v) {
//     print_r($v->toArray());
// }


Обратите внимание на $q->select. В случаи, если я закомментирую получение результатов через fetchAll и воспользуюсь $modx->getCollection, то применение select лишено смысла, я получаю объект с переводом в массив методом toArray(), что на выходе дает множество совершенно ненужных мне параметров. Это непривычно, немного осложняет работу и вообще, зачем получать данные, которые тебе не нужны? Не, может это вопрос привычки конечно. Но насколько я понимаю, в процессорах, если я наследую стандартный процессор modx, которые здесь лежат, то я не могу использовать fetchAll в getData? Просто нигде так не делается и в процессоре могут быть функции, которые ожидают получить именно объект
$data = $this->getData();
$list = $this->iterate($data);

Ну хорошо, допустим я в public function process() в наследнике modObjectGetListProcessor переопределил, что нету там iterate($data) и никто не ждет объект. Так наверное не по-феншую делать? А по-другому же не ограничишь данные на выходе тем, что в select?
Короче, я в сомнениях весь. Прям как девочка.
4 комментария
proxyfabio1
proxyfabio 12 апреля 2015г в 22:23 #
Fi1osof1
Fi1osof 13 апреля 2015г в 20:04 #
Мне на самом деле вообще мало понятен смысл топика и проблемы. Юзать fetchAll и getCollection, при этом удивляться разнице результатов — это все равно что собирать пшеницу в поле и хлеб в магазине покупать. Абсолютно разные вещи.
M
MisterN 13 апреля 2015г в 21:12 #
Как раз разные результаты совсем не удивляют. Суть топика объяснить тоже можно в принципе, что правда потребует взаимных усилий. Но я уже разобрался, мне не надо уже, а у вас наверняка есть занятие интересней и вам тем более не надо.
Fi1osof1
Fi1osof 13 апреля 2015г в 21:31 #
Если уже разобрался, то замечательно.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.