logo

ORMで簡単にIDのリストを取得する方法

idnameemail
1hogeexample.hoge@example.com
2hugaexample.huga@example.com
3piyoexample.piyo@example.com

このようなテーブル( users とする)があった時、次のコードで id を一次元配列で一発で取得できる:

$result = TableRegistry::getTableLocator()->get('Users')->find()->select('Users.id')->extract('id')->toList(); // $result = [1, 2, 3]

email だけを取得したい場合も同様:

$result = TableRegistry::getTableLocator()->get('Users')->find()->select('Users.email')->extract('email')->toList(); // $result = ['example.hoge@example.com', 'example.huga@example.com', 'example.piyo@example.com']

このコードは CakePHP3 以上であれば動くはず