繁体   English   中英

yii2 findAll不能从变量中传入参数

[英]yii2 findAll not working passing in parameter from variable

我正在尝试获取以下查询:

SELECT * FROM `book_category_tree` WHERE `id` IN (8, 9, 10, 15)

根据以下yii2文档:

http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#findAll%28%29-detail

如果我使用:

$rows = BookCategoryTree::findAll([8,9,10,15]);

它可以完美工作,但是每当我尝试使用值yii2的变量时,都无法识别这些值:

$myValues = '8,9,10,15';
$rows = BookCategoryTree::findAll([$myValues]);

并生成以下查询:

SELECT * FROM `book_category_tree` WHERE `id`='8,9,10,15'

我为避免这种情况而疯狂,我也尝试过:

$rows = BookCategoryTree::find()->where(['in','id',[$myValues]])->all();

但是我没有运气。

欢迎任何想法,

谢谢

您应该使用带运算符的条件条件

 $rows = BookCategoryTree::find()->where( ['in', 'id', [8,9,10,15]])->all();

要么

 $myValues = [8,9,10,15];
 $rows = BookCategoryTree::find()->where(['in','id',$myValues])->all();

如果您在字符串中有值,则可以使用explode来构建数组

 $myValues =explode(',', $string_values);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM