xPDOQuery.select
Последнее обновление Jan 28th, 2020 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn morexPDOQuery::select¶
Укажите столбцы для возврата из запроса SQL.
Синтаксис¶
API Docs: xPDOQuery::select()
getSelectColumns($className, $tableAlias= '', $columnPrefix= '', $columns= array (), $exclude= false)
xPDOQuery select ([string $columns = '*'])
При выборе полей всегда обязательно включайте хотя бы первичный ключ таблицы, в противном случае xPDO не сможет сделать объект из него и потеряться в рекурсии с ошибкой превышения максимального числа вложенных функций в 100.
Пример¶
Получить коллекцию ящиков, только с полями ID и name.
$query = $xpdo->newQuery('Box');
$query->select($xpdo->getSelectColumns('Box','Box','',array('id','name')));
$boxes = $xpdo->getCollection('Box',$query);
Использование с toArray()¶
Важно отметить, что toArray()
будет по умолчанию использовать значения отложенной загрузки, поэтому он эффективно переопределяет значения, которые вы передали методу select()
. Чтобы toArray()
следовал вместе с тем, что вы передали в select()
, вы устанавливаете для его третьего параметра значение true
.
$query = $xpdo->newQuery('modUser');
$query->select('id,username');
$users = $xpdo->getCollection('modUser',$query);
foreach ($users as $u) {
print_r($u->toArray()); // will print ALL fields.
print_r($u->toArray('',false,true)); // will print ONLY the selected fields.
}
Смотрите также¶
Функция работает с массивом имен полей или строкой, разделенной запятыми:
xPDOQuery select ([string $columns = '*'])
xPDOQuery select ([array $columns = array()])
The example in the API docs passes select()
the results of getSelectColumns()
, which returns a comma-delimited list (a string).
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn more