我正在尝试获取以下查询:
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();
但我没有运气。
欢迎任何想法,
由于
答案 0 :(得分:2)
你应该使用带有运算符表示法的where条件
$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);