我用 Yii2 建立了一个网站,我试图获取其类别可用的记录。我已经获得了可用的类别并将它们存储在一个数组中。但当我尝试使用“in”条件进行下一个查询时,它什么也没有返回。我确信数据库记录是正确的。
// Get active categories
$active_cat = Category::find()
->where(['status' => SystemCode::STATUS_ACTIVE])
->andwhere(['is_deleted' => 0])
->select(['id'])
->asArray()
->all();
// Get available articles
$query = Articles::find()
->where(['in', 'cat_id', $active_cat]);
最佳答案
您正在使用 all()
来获取类别列表,这将为您提供以下格式的行数组:
[
['id' => 1],
// ...
],
但是对于下一个查询,您需要一个简单的 ID 列表 - 您可以通过使用 column()
来实现此目的方法替代:
// Get active categories
$active_cat = Category::find()
->where(['status' => SystemCode::STATUS_ACTIVE])
->andWhere(['is_deleted' => 0])
->select(['id'])
->column();
// Get available articles
$query = Articles::find()
->where(['in', 'cat_id', $active_cat]);
关于php - Yii2:如何获取其属性在数组中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57264166/