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