Приветствую всех!
Решил опробовать метод обхода коллекции. Сразу код - мы выводим имена сайтов и их идентификаторы разными способами обходя коллекцию, демонстрируем изменение локального скопа в нашем callback'е обхода, а также получаем сайт по первичному ключу методом коллекции.
Ну и вывод после выполнения кода:
Основная задача у меня была собрать так все, чтобы был автокомплит в IDE. Для этого сперва нужно было собрать ну и конечно же наш .
Решил опробовать метод обхода коллекции. Сразу код - мы выводим имена сайтов и их идентификаторы разными способами обходя коллекцию, демонстрируем изменение локального скопа в нашем callback'е обхода, а также получаем сайт по первичному ключу методом коллекции.
// region Ядро (main), Версия 26.0.0, Разработчикам: ORM: добавлен метод Collection::walk для обхода элементов коллекции.
$sites = \Bitrix\Main\SiteTable::query()
->addSelect('*')
->fetchCollection();
/** @var \Bitrix\Main\EO_Site_Collection $sites */
/** @var \Bitrix\Main\EO_Site $site */
foreach ($sites as $site) {
echo sprintf('%s [%s]', $site->getName(), $site->getLid()) . PHP_EOL;
}
echo '-------------------------' . PHP_EOL;
$sitesIds = [];
// walk возвращает $this - т.е. эту же коллекцию
$sites->walk(static function (\Bitrix\Main\EO_Site $site) use (&$sitesIds) {
echo sprintf('%s [%s]', $site->getName(), $site->getLid()) . PHP_EOL;
$sitesIds[] = $site->getLid();
});
d( $sitesIds );
echo '-------------------------' . PHP_EOL;
$defaultSite = $sites->getByPrimary([
'LID' => 's1'
]);
echo 'DEF_SITE_EMAIL: ' . $defaultSite->getEmail() . PHP_EOL;
// endregion
|
Сайт по умолчанию [s1] ------------------------- Сайт по умолчанию [s1] array:1 [ 0 => "s1" ] ------------------------- DEF_SITE_EMAIL: info AT hipot-studio DOT com |
Основная задача у меня была собрать так все, чтобы был автокомплит в IDE. Для этого сперва нужно было собрать ну и конечно же наш .