只需将您心爱的属性添加回来,并使用Table对象中的beforeFind()回调函数将该属性中的值添加到查询中即可。
或者只是create a custom finder:
public function findOrdered(Query $query, $options) {
return $query->order([
$this->alias() . '.name' => 'ASC'
]);
}
而且使用它
$this->find('list')->find('ordered')->all();
或创建一个有序列表发现,返回排序列表中的全部。
public function findOrderedList(Query $query, $options) {
return $this->findList($query, $options)
->order([
$this->alias() . '.name' => 'ASC'
]);
}
或直接重载findList()方法并调用父类。
或者如果您的find()
通过关系被调用,则可以使用sort
选项set the default order for the relationship。
$this->hasMany('AuditLogs', [
'sort' => [
'AuditLogs.timestamp' => 'desc',
],
]);
我建议你'$这个 - > aliasField(” name')'而不是' - > alias()'连接' –
@burzum有没有你说过的beforeFind选项的例子? – khany
https://github.com/UseMuffin/Orderly – ADmad