Yii2 ModelSearch订购问题

时间:2016-05-06 02:29:34

标签: php yii yii2

我使用gii / crud创建了一个模型和模型搜索,这个搜索工作效果很好。我喜欢它如何允许您通过在URL中指定参数来排序或过滤记录,而无需编写任何其他代码。例如:

http://domain.com/api/user/index?sort=created_at

但是,我找不到如何在URL中以升序或降序排序记录。我找不到任何这方面的例子。

我觉得我应该能够添加另一个参数(例如订单),如:

http://domain.com/api/user/index?sort=created_at&order=DESC

有人知道这是否可行?

2 个答案:

答案 0 :(得分:0)

在搜索模型中,定义$ query变量,如下所示,以降序

$query = Modelname::find()->orderBy('created_at DESC')

答案 1 :(得分:0)

好的,我需要回答我自己的问题。我现在意识到,如果我更详细地描述我正在做的事情,那可能会更有帮助。

我正在构建RESTful API并覆盖了新闻项索引方法,因此我可以使用ActiveDataProvider来更好地控制查询。在这样做时,它打破了默认的排序方法(仅降序)。

默认情况下,RESTful API允许您为升序添加?sort=created_at,为降序添加?sort=-created_at。但是,在覆盖内置操作时构造SQL会阻止它正常工作。

编辑:我刚刚意识到我通过尝试包含与默认值冲突的自己的排序方法来打破它。删除排序后,它按预期工作。