
Cakephp4では、$this->Models->find('list')でリスト形式の値が取得できます。
デフォルトでは該当テーブルの主キーがkeyになり、valueはTableで自由に$this->setDisplayField('label')でセットすることができます。
もし、それ以外のkeyやvalueにしたい場合は、データをごにょごにょする必要はなく、
// コントローラーなどのメソッド内で
$query = $this->Models->find('list', [
'keyField' => 'id',
'valueField' => 'name',
]);
$data = $query->toArray();
コードにあるようにkeyFieldとvalueFieldに任意のテーブルカラムを設定するだけで、シンプルに['key' => 'value']という形で取得できます。
便利なのでお気軽にどうぞ。
Cakephp4: キー/値のペアを検索する
https://book.cakephp.org/4/ja/orm/retrieving-data-and-resultsets.html#table-find-list