Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在操作员中使用Yii2REST web服务的GET请求_Php_Yii2 - Fatal编程技术网

Php 如何在操作员中使用Yii2REST web服务的GET请求

Php 如何在操作员中使用Yii2REST web服务的GET请求,php,yii2,Php,Yii2,yii2restweb服务的文档解释说,我们可以通过GET-HTTP请求中通过URL传递的查询参数来过滤搜索到的集合 从文件: 另外,您可以像或那样对集合进行排序。筛选集合像或可以使用数据筛选器实现 我的问题是如何对IN条件使用查询参数 框架的数据过滤器类支持IN条件,但它不能像我这样工作。我试过这些: (返回空响应) (在“需要多个操作数”中返回错误消息“运算符”。) …和其他方法都是相同的情况直到您发布代码,在其中实例化并加载数据过滤器,我不确定这是否对您有帮助 。。因此,根据您问题中的用例

yii2restweb服务的文档解释说,我们可以通过GET-HTTP请求中通过URL传递的查询参数来过滤搜索到的集合

从文件: 另外,您可以像或那样对集合进行排序。筛选集合像或可以使用数据筛选器实现

我的问题是如何对IN条件使用查询参数

框架的数据过滤器类支持IN条件,但它不能像我这样工作。我试过这些:

(返回空响应) (在“需要多个操作数”中返回错误消息“运算符”。)


…和其他方法都是相同的情况

直到您发布代码,在其中实例化并加载数据过滤器,我不确定这是否对您有帮助

。。因此,根据您问题中的用例,我假设您正在使用
$dataFilter->load(Yii::$app->request->queryParams)

因此,如果希望正确计算查询参数,这应该是格式化查询参数的正确方法

?filter[id][in][]=1&filter[id][in][]=2&filter[id][in][]=3

根据文档中的这些示例和

大家好,通过在GET中指定参数运算符,似乎无法使用in条件进行查询,因此解决方案如下:

http://localhost/api/v1/users?filter[id][]=1&filter[id][]=2&filter[id][]=3
因为我会将其转换为查询,请参见


注意:没有在URI中指定[in]运算符,否则它将不起作用

Hi csminb,我尝试使用您的答案,但仍然不起作用。我认为在该模式下,在条件中使用筛选器查询参数不是正确的模式。您说过使用$dataFilter->load(Yii::$app->request->queryParams),我实际上并没有实现代码。我直接使用框架来构建条件我们可以只更新搜索模型,检查值是否为数组,然后使用“IN”操作符(?)您可以在UserController的公共函数actions()中添加代码吗?可能会有“searchModel”定义。用户控制器扩展了yii\rest\ActiveController,操作是它实现的默认操作。查看您使用的是哪个yii2版本?在最新版本中,您需要设置searchModel,查看searchModel@JannesBotis['class'=>'yii\data\ActiveDataFilter','searchModel'=>function(){return(新的动态模型(['id'=>null,'username'=>null,'email'=>null])->addRule('id','integer')->addRule(['username','email'],'string');},];