我有一张桌子,我需要拉出所有对应特定图案的ID(所有主键)。我需要使用Yii中的模型类来完成这些工作,并将它们保存到数组中以供进一步处理。在Yii中选择记录ID
-1
A
回答
1
下面是一个方法来做你看起来像你问。在这个例子中,模型是“People”,模式是job_title LIKE "%developer%"
- 后处理完成后放入数组中。如果您可以使用对象,则跳过后处理。
$criteria=new CDbCriteria;
$criteria->select = 'people_id';
$criteria->condition='job_title LIKE :txt';
$criteria->params=array(':txt'=>'%developer%');
$people=People::model()->findAll($criteria);
// save to array:
$people_a = array();
foreach ($people as $person) {
$people_a[] = $person['people_id'];
}
稍微更有效的方式来做到这一点(如果你需要得到的结果是一个数组),可让您使用CommandBuilder的和现有的车型是:
$model = People::model();
$model->dbCriteria->condition .= 'job_title LIKE :txt';
$model->dbCriteria->select = 'people_id';
$model->dbCriteria->params = array(':txt'=>'%developer%');
$people = $model->getCommandBuilder()
->createFindCommand($model->tableSchema, $model->dbCriteria)
->queryAll();
$people_a = array();
array_walk($people, function ($value) use (& $people_a) {
$people_a[] = $value['people_id'];
});
(匿名函数以上假设PHP 5.3)
0
没有办法只选择具有ActiveRecord模式的ID。你可以使用CCommandBuilder来建立sql查询。
相关问题
- 1. 选择记录ID
- 2. 选择ID后记录
- 3. 在组合框中选择记录ID时在报告中显示记录
- 4. 选择记录不在其他选择记录中
- 5. MySQL的选择最近的记录ID
- 6. Linq2Sql通过多个ID选择记录?
- 7. 选择记录取决于两个ID
- 8. 选择标记ID
- 9. 选择记录其中id是集合ID之一
- 10. 选择记录
- 11. 选择记录
- 12. 选择记录
- 13. 选择记录
- 14. 选择记录
- 15. 选择记录
- 16. 选择记录WHERE ID没有在表中从MySQL
- 17. 选择包含在另一个表中的ID的记录
- 18. 在id!= 0的MySQL数据库中选择记录
- 19. 如何选择在MySQL中具有最大ID的记录?
- 20. 选择记录,其中ID是在其他表和状态= 1
- 21. 选择ID不在多个表中出现的记录
- 22. 如何在SQLite中选择带有订单ID的记录
- 23. 在MYSQL选择 - 选择所有记录
- 24. 如何在yii createCommand中获得id新记录?
- 25. 从列中选择记录
- 26. YIi活动记录选择固定字段
- 27. SQL选择记录
- 28. SQL选择记录
- 29. 选择DISTINCT记录
- 30. SQL选择记录