это тоже будет работать, но при этом в запрос попа
это тоже будет работать, но при этом в запрос попадают все поля, и соответственно возрастает нагрузка и потребление памяти. Лучше все-таки до момента обращения к серверу правильно настроить select, чтобы в выборку попали только нужные поля. Странное дело, пока не могу понять
public function prepareQueryBeforeCount(xPDOQuery $c){
$c=parent::prepareQueryBeforeCount($c);
$c->select(['modUser.id','modUser.username']);
$c->prepare();
print $c->toSQL();
die;
}
возвращает правильный запрос:
SELECT modUser.id, modUser.username FROM `spmx_users` AS `modUser`
а на выходе действительно отдает все поля
Array
(
[success] => 1
[total] => 5
[results] => Array
(
[0] => Array
(
[id] => 1
[username] => admin
[password] => P3/gWbTaphPr//hV8djePt1qdcjN5CIxBVKE5tqdJyQ=
[cachepwd] =>
[class_key] => modUser
[active] => 1
[remote_key] =>
[remote_data] =>
[hash_class] => hashing.modPBKDF2
[salt] => b052eb5470a21ff53697a5bf4cb43649
[primary_group] => 1
[session_stale] => Array
(
[1] => spravochniki
[2] => web
)
[sudo] => 1
)
[1] => Array
нигде в коде больше $c->select(...) не встречается вплоть до $modx->getCollection. Ничего не понимаю.