CakePHP3でストアドプロシージャを使って、複雑なクエリ結果をSelectBoxに入れたいです。
ConnectionManager::getを使って、ストアドプロシージャからデータ抽出は出来ていますが、配列の配列みたいになってしまい、ビューのSelectBoxに入れると表示内容が入れ子になってしまいます。
ストアドと同じクエリをTableRegistry::getで処理すると問題無くSelectBoxに入れる事が出来ます。
デバッグで、抽出したデータを見ると、下記のような違いがありました。
直接クエリの結果をSelectBoxに入れには、どうしたら宜しいでしょうか?
php
1 2/// TableRegistry::getで抽出したデータ 3Array 4( 5 [1] => なまえ1 6 [2] => なまえ2 7 [3] => なまえ3 8) 9 10/// ConnectionManager::getで抽出したデータ 11Array 12( 13 [0] => Array 14 ( 15 [id] => 1 16 [name] => なまえ1 17 ) 18 19 [1] => Array 20 ( 21 [id] => 2 22 [name] => なまえ3 23 ) 24 25 [2] => Array 26 ( 27 [id] => 3 28 [name] => なまえ3 29 ) 30)
php
1$this->mTest = TableRegistry::get('m_tests'); 2$date1 = $this->mTest->find() 3 ->where(['is_deleted' => 0]) 4 ->select(['id', 'name']) 5 ->combine('id', 'name') 6 ->toArray(); 7print_r($date1); 8 9$connection = ConnectionManager::get('default'); 10$date2 = $connection->execute('call st_test_1;')->fetchAll('assoc'); 11print_r($date2);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。