我需要为MODx页面创建一个已过滤条目的排序列表。我在db中有几个带有'table1‘和列'id','name','someparam1’等的条目。我可以用以下命令在页面上打印整个列表
$companies = $modx->getCollection('Company');
foreach($companies as $company) {
$fields = $company->toArray();
$output .= $modx->getChunk('showEntryTpl', $fields);
}
return $output;但我仍然不能使用recommendation#1或recommendation#2打印相同的列表: MODx文档中的示例:
$c = $xpdo->newQuery('Box');
$c->innerJoin('BoxOwner','Owner'); // arguments are: className, alias
$c->where(array(
'width' => 5,
'Owner.user' => 2,
));
$c->sortby('name','ASC');
$c->limit(5);
$boxes = $xpdo->getCollection('Box',$c);这样使用它
$sortingcriteria = 'id';
$s = $modx->newQuery('modResource');
$s->sortby($sortingcriteria,'ASC');
$out = $modx->getCollection('Company',$s);
return $out;不起作用。如何按选定的列对列表进行排序,然后对其进行筛选?
发布于 2012-12-07 21:06:58
感谢Vasis和Sean Kimball的建议!此代码从数据库中提取几条记录,按ASC/DESC顺序排序,并按一些值进行筛选:
$sortingcriteria = 'id';
$filter1 = 'free';
$s = $modx->newQuery('Company');
$s->sortby($sortingcriteria,'ASC');
$s->where(array(
'pay_type' => $filter1,
));
$out = $modx->getCollection('Company',$s);
$output = '';
foreach ($out as $item) {
$fields = $item->toArray();
$output .= $modx->getChunk('showAllCompaniesTpl', $fields);
}
return $output;发布于 2012-12-07 02:43:44
$sortingcriteria = 'id';
$s = $modx->newQuery('Company'); // your mistake here. Need to use 'Company' instead 'modResource'然后,您可以对条目进行排序和过滤
$s->sortby($sortingcriteria,'ASC');
$s->where(array(
'column_name1' => 5,
'column_name2' => 2,
));
$out = $modx->getCollection('Company',$s);
$output = '';
foreach ($out as $item) {
$output .= $item->get('column_name') . '<br/>';
}
return $output;https://stackoverflow.com/questions/13749037
复制相似问题