Выбора ресурcа в зависимости от параметра TV
У документа есть дата. Которая задается TV. Мне необходимо получить документ и определить какая у него дата. В зависимости от этого я его вывожу или нет.
В настоящий момент я реализовал так.
То есть сначала запрос и выбор документов, затем получение их TV и проверка условия.
Вопрос!
А возможно ли в 1 запрос выбрать документы с удовлетворяющими меня TV?
В настоящий момент я реализовал так.
$documents = $modx->getCollection('modResource',array('parent' => 14));
foreach ($documents as $document) {
$open_date = $document->getTVValue(2);
if (strtotime($open_date) >= $now){
//код...
}
}
То есть сначала запрос и выбор документов, затем получение их TV и проверка условия.
Вопрос!
А возможно ли в 1 запрос выбрать документы с удовлетворяющими меня TV?
Комментарии: 3
Можно попробовать делать выборку сначала TV, а потом получать ресурсы. Так уже будет быстрее и меньше ресурсов расходоваться.
А если нужно прям за один запрос, используйте pdoTools.
$date = date('Y-m-d h:m:s');
$tvObjs = $modx->getCollection('modTemplateVarResource',array('tmplvarid' => 2, 'value:>=' => $date));
$resources = array();
foreach ($tvObjs as $tv) {
$resources[] = $tv->get('contentid');
}
В итоге в массиве $resources у нас будут id-шники нужных ресурсов.А если нужно прям за один запрос, используйте pdoTools.
Вообще, такой запрос составить легко (даже очень просто). Нужны минимальные знания sql. Но чтобы вам помочь, надо знать — какой тип данных вы используете для хранения даты в таблице?
С sql у меня нет проблем. У меня то вопрос в xPDO возник.
А вопрос по поводу в чем храню, это не ко мне, а к разработчикам modx. Мои данные хранятся в TV. А значит хранитьс в формате unix.
По поводу pdoTools спасибо, по изучаю.
Я понимаю на sql по любому быстрее, но скорость мне не сильно нужна. Хочу понять можно ли на xPDO ещё оптимальнее.
А вопрос по поводу в чем храню, это не ко мне, а к разработчикам modx. Мои данные хранятся в TV. А значит хранитьс в формате unix.
По поводу pdoTools спасибо, по изучаю.
Я понимаю на sql по любому быстрее, но скорость мне не сильно нужна. Хочу понять можно ли на xPDO ещё оптимальнее.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.