私はテーブルを持っており、すべてのID(すべての主キー)を特定のパターンに対応させる必要があります。私はこれをYiiのモデルクラスで行う必要があり、さらに処理するために配列に保存する必要があります。YiiのレコードIDを選択
-1
A
答えて
1
ここにあなたが求めているようなことをする方法があります。この例では、モデルは「人」で、パターンは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'];
}
Aそれを行うには、わずかに、より効率的な方法(あなたが配列する結果が必要な場合)を使用すると、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. レコードを選択
- 2. レコードの選択
- 3. レール:オブジェクト内のレコードを選択すると、オブジェクトのID
- 4. Linq2Sqlは複数のIDでレコードを選択しますか?
- 5. データベースからのデータの選択(Yii)
- 6. 選択した趣味のIDをyiiでデータベースに保存する方法1.13
- 7. Yiiのデータベースに次と前のIDレコードを取得
- 8. 親IDでIDを選択
- 9. 最新のレコードを選択
- 10. 指定されたIDでレコードを選択
- 11. Java JDBC選択レコード
- 12. 選択したレコード
- 13. 選択ノードID
- 14. イメージIDを選択
- 15. JQUERY、IDを選択
- 16. Yii複数選択値Find()ファンクション
- 17. チェックボックスモデルで選択されたレコードを選択すると、残りのレコードの選択を解除します。
- 18. 異なるレコードを選択
- 19. バッチでレコードを選択
- 20. LINQ Entity Frameworkレコードを選択
- 21. SQLを選択したレコード
- 22. レコードのリストから選択
- 23. アスタリスクIVRレコードの選択
- 24. Crystal Reportsのレコード選択式
- 25. Crystal Reportsのレコード選択
- 26. 順次レコード数の選択
- 27. 選択のすべてのレコードを選択し
- 28. クエリービルダー選択エンティティリレーションID
- 29. TSQLを選択し、Idを
- 30. 1つのIDの特定の変更のレコード(時間)を選択