[英]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.