gpt4 book ai didi

php - 删除 DataObject 默认排序

转载 作者:可可西里 更新时间:2023-11-01 13:23:57 24 4
gpt4 key购买 nike

我有一个默认排序的 DataObject:

class Author extends DataObject {
private static $db = array('Name' => 'Varchar');
private static $default_sort = 'Name ASC';
}

我想Author::get() 数据但没有排序。

如此给...

Author::create(array('Name' => 'DEF'))->write();
Author::create(array('Name' => 'ABC'))->write();

这将使用排序输出 ABC,然后是 DEF,但是如果排序被清除,我希望是 DEF 然后是 ABC .

我试过 Author::get()->sort('')Author::get()->sort(null) 但都返回ABC 然后是 DEF

注意我问的原因是我有一个复杂的查询(使用连接),这是导致问题的地方,如果我也尝试设置排序,我会遇到错误。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY "_SortColumn0" ASC' at line 1

所以解决方案,也是我想知道的,是如何清除特定 Author::get() 的默认排序,同时保持 上现有的默认排序>数据对象?

最佳答案

我认为取消排序的唯一方法是操作支持 DataListDataQuery,它在运行 Author::get() 时返回

$dq = Author::get()->dataQuery();
$dq->sort(null, null, true);
$authors = Author::get()->setDataQuery($dq);

关于php - 删除 DataObject 默认排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38993709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com