CakePHP3でSQL文を直接書く方法
開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。
できれば、クエリービルダーを用いてSQL文を書かずに済ませたいところですが、SQL文が複雑になるほど、クエリービルダーではどうやって書いてよいか分からず、直接、SQL文を書いたほうが、SQL文を考えてから、クエリービルダーに置き換える作業がなくてラクだと思い、調べました。
(例: UsersController.php側
<?php // namespaceより下でclassよりも上の部分に書く use Cake\Datasource\ConnectionManager; // class内にtestアクションを追加する public function test(){ $sql = 'SELECT * FROM users WHERE id=2'; $connection = ConnectionManager::get('default'); $results = $connection->execute($sql)->fetchAll('assoc'); $this->set('result',$result); } ?>
(例 test.ctp側
<?php var_dump($result); ?>
動作結果