在默认的rest api -Yii2框架中对数据进行排序

Moh*_*hid 5 yii2

我在yii2中设置了默认的rest api,当我使用get方法运行"api/web/v1/users"时,它给出了用户列表.

有没有办法对输出数据进行排序,如"api/web/v1/users?sort = name desc"?

Sal*_*ani 12

没有必要为它编写代码.Yii已经通过在属性名称中添加负号来支持逆排序,如[Yii核心代码]所示.

除非名称未包含在模型的安全属性列表中,否则您只需使用sort = -name而不是sort = name desc:

api/web/v1/users?sort=-name
Run Code Online (Sandbox Code Playgroud)
  • 注意:你也可以用逗号链排序:api/web/v1/users?sort = -name,id,-date

否则,如果您的字段不是安全属性或需要高级排序,则您必须覆盖IndexAction::prepareDataProvider或配置它以返回activeDataProvider,它指定排序应如何工作.


Evg*_*nko -2

请参阅https://github.com/githubjeka/yii2-rest/blob/master/rest/versions/v1/controllers/PostController.php#L35

您可以使用 $action->param 或 $_GET['sort'] 来添加与 dataProvider 的排序。