CakePHP モデルの読み込みは App::import ではなく ClassRegistry::init で
環境
CakePHP 1.2.3.8166
問題
動的にモデルクラスを読み込みたい。
例えばバリデーションで相関チェックをする場合に、別のモデルを利用したい。
解決方法
ClassRegistry::init を使う。
<?php $Group = ClassRegistry::init('Group'); $groups = $Group->find('all'); ?>
注意
下記のコードでも同様の処理ができるがやってはいけない。
下記のコードでは、データベースの接続先が $default 固定になってしまうため、ユニットテストで問題が出てくる。
<?php App::import('Group'); $Group = new Group(); $groups = $Group->find('all'); ?>