如何发送Yii2 RESTful GET请求并将排序指定为params

时间:2016-04-05 15:00:10

标签: php json rest sorting yii2

我想向v1/users端点发送GET请求,其中as params我想指定我想按priority DESCstatus ASC进行排序。

如您所见,我想发送将映射到SQL WHERE部分的参数:

SELECT * FROM table WHERE something ORDER BY priority DESC, status ASC

我应该如何在我的HTTP请求中指定我想要这种排序的params?我认为为了做到这一点,我需要在POST请求中发送JSON数据。但这是一个问题,因为我想要GET请求而不是POST。 post/users表示创建用户,我想要get个用户。

我想我必须像这样发送JSON对象

"sort":[ {"priority":"DESC", "status":"ASC"} ]

首先,发送GET请求时是否可以发送这样的参数? 第二,你如何在PHP中使用cUrl发送这些参数?

1 个答案:

答案 0 :(得分:3)

使用内置的RESTfull API,您可以使用逗号进行多属性排序,使用' - '表示DESC:

GET v1/users?sort=-priority,status

如果使用自定义操作而不是内置的onces。请务必始终返回data provider个实例,以便serializer可以生成相关的分页,并且上面的参数会被取消:

// instead of: return $modelClass::find()->all();
return new ActiveDataProvider([
    'query' => $modelClass::find(),
]);
相关问题