Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не хватает fetchAll #29

Open
Daniil-333 opened this issue Feb 28, 2024 · 1 comment
Open

Не хватает fetchAll #29

Daniil-333 opened this issue Feb 28, 2024 · 1 comment

Comments

@Daniil-333
Copy link

Здравствуйте. Для новичка не очевидно, что при работе с Crm\ContactTable::getList() нужно в конце извлечь данные через fetchAll(). Добавьте это в доку)

https://bx24devbook.website.yandexcloud.net/Modul_CRM/Kontakt/Metody.html

@gromdron
Copy link
Owner

Спасибо за ваш комментарий, но в указанном фрагменте не нужно использовать fetchAll.
*Table::getList возвращает Bitrix\Main\ORM\Query\Result, который является наследником \Bitrix\Main\DB\Result и соответственно так же реализует интерфейс IteratorAggregate.

Поэтому если вы делаете fetchAll и затем делаете foreach этого результата, вы фактически каждый раз пробегаетесь 2 раза по результатам.

К тому же я некоторый противник метода fetchAll, так как де факто он забирает все данные запроса в массив, а в случае с запросом который содержит подразпросы туда попадают UALIAS_* которые в работе кода не нужны. К тому же в моей практике я чаще вижу когда новички делают fetchAll, а потом дополнительно итерируются по массиву собирая его в какой-то другой массив, что де-факто просто трата ресурсов.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants