我正在使用ClassRegistry :: init方法在另一个Model中实例化一些模型。
所以我有
应用程序/型号/ Report.php 应用程序/型号/ KPI / Factory.php
我已使用以下方法将模型包含在KPI文件夹中:
App::build(array(
'Model' => array(APP . 'Model' . DS . 'KPI' . DS)
));
使用控制器中的模型是可以的。但是当在Report.php中使用ClassRegistry :: init时,我得到一个奇怪的错误,说“Class无法重新声明”。
更奇怪的是它可以在Windows上找到它但在Linux上失败了。
由于
答案 0 :(得分:0)
我相信App :: build方法用于向路径添加其他目录。模型目录中的所有内容都应由Cake自动加载,即使它位于子目录中,因此您不需要App :: build。假设Factory类声明为
class Factory extends AppModel {}
那么你应该能够将它与
一起使用ClassRegistry::init('Factory')
如果您有多个具有名为“factory”的类的子目录,则将其重命名为KPI_Factory并使用
ClassRegistry::init('KPI_Factory')
请注意,这一切都未经测试,但希望能让您走上正确的轨道。