Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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
在yii2框架php中,将表单中的多个值用于where条件_Php_Sql_Yii_Yii2_Yii2 Advanced App - Fatal编程技术网

在yii2框架php中,将表单中的多个值用于where条件

在yii2框架php中,将表单中的多个值用于where条件,php,sql,yii,yii2,yii2-advanced-app,Php,Sql,Yii,Yii2,Yii2 Advanced App,我试图使用yii2中的where()查询获取值,我想使用多个where条件从中获取值,我尝试了几种替代方法,但它们似乎都不起作用 $values的数量和内容各不相同 $test = Material::find()->where(['Material.MaterialId' => $value])->joinWith(['objectName'])->all(); 这一个适用于单一值。但是如果我做一个foreach循环来得到所有的变量值。所以我得到了一条像 $value

我试图使用yii2中的where()查询获取值,我想使用多个where条件从中获取值,我尝试了几种替代方法,但它们似乎都不起作用

$values的数量和内容各不相同

$test = Material::find()->where(['Material.MaterialId' => $value])->joinWith(['objectName'])->all();
这一个适用于单一值。但是如果我做一个foreach循环来得到所有的变量值。所以我得到了一条像

$values = "'ID1','ID2','ID3','IDn',";
$test = Material::find()->where('in', 'Material.MaterialId' , [$values])->joinWith(['objectName'])->all();
它不会返回任何东西,但是如果我使用的是那样的话

$test = Material::find()->where('in', 'Material.MaterialId' , [ID1','ID2','ID3','IDn',])->joinWith(['objectName'])->all();
这让我得到了所需的结果。我也尝试过使用相同的或在where子句和orWhere方法中使用相同的方法,我想它们都有相同的问题。

试试这种方法

$value = [' ID1','ID2','ID3','IDn'];

$test = Material::find()->where(['Material.MaterialId' => $value])->
   joinWith(['objectName'])->all();

我没有使用这个框架,但是如果你把
$values
作为一个数组,并且做
where('in','Material.MaterialId',$values)
,那会不会行不通呢?我试着把它作为一个数组使用,比如
$test=Material::find()->where('in','Material.MaterialId',[$values])->joinWith(['objectName')->all()其中值也是数组。但我只是这样尝试了一下,
$test=Material::find()->where('in','Material.MaterialId',$values)->joinWith(['objectName]]->all()成功了。谢谢,伙计