在 CakePHP 2.x 中有一个属性$order
在模型中。所以我使用这个属性来全局排序我的数据。例如,假设我需要在我的视图中显示一个包含国家/地区的选择框Country
用于添加行的模型:
$order = 'Country.country DESC';
然后当我从任何控制器获取国家/地区时,数据按国家/地区名称而不是按国家/地区名称排序id
或任何其他领域。这对于选择框非常有帮助。在 CakePHP 3.x 上,我似乎无法在文档中找到任何类似的参考。
当我获取数据时,我可以做些什么来对数据进行全局排序,而不是在每个查找中使用顺序选项?
在 CakePHP 3.x 中,如果您想为模型的每个查询设置默认顺序,那么您可以在表中放置以下代码:
public function beforeFind ($event, $query, $options, $primary)
{
$order = $query->clause('order');
if ($order === null || !count($order)) {
$query->order( [$this->alias() . '.sort_field_name' => 'sort_order'] );
}
}
If any order
从外部设置,它会跳过默认顺序。否则,它将始终按sort_field_name
根据sort_order
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)