【发布时间】:2011-02-13 14:44:57
【问题描述】:
我是 cakePhp 开发的新手。我一直坚持以下问题:
我制作了一些模型、控制器和视图——效果很好。问题是,在生产之后,我必须在逻辑上“连接”到其他表的数据库中创建新表(Transactionaltemp 表和相应的模型和控制器),但技术上不需要 - 对于前任。它保存有关 user_id、时间、ip 和类似信息的临时信息。因此,其他表不需要直接连接到它。
问题是我尝试(在transactionaltemps_controller以外的其他控制器中):
$this->loadModel('Transactionaltemp');
我收到错误 - 未找到模型(这是真的,因为模型在缓存中丢失)。足够有趣的transactionaltempls_controller 在缓存中(在cake_controllers_list 文件中)。
我尝试了以下方法来解决问题:
- 清除缓存
- 禁用缓存
- 尝试在我想使用的控制器中使用
uses={..}代码mymodels_controller - 尝试使用
init('Transactionaltemp')
没有成功。下面是对应的代码: 型号:
<?php
class Transactionaltemp extends AppModel
{
var $name = 'Transactionaltemp';
function beforeSave() {
return true;
}
}
?>
控制器:
<?php
class TransactionaltempsController extends AppController
{
var $name = 'Transactionaltemps';
var $scaffold;
}
?>
我会非常感谢任何帮助!!!
【问题讨论】:
-
您定义模型的文件的名称是什么?
-
你能从它自己的控制器(Transactionaltemps)访问模型吗?
-
是的,我可以从它自己的控制器访问模型。我定义模型的文件的名称与模型的类名相同 - transactionaltemp.php
-
如果您发布一些代码来展示您如何使用 loadModel() 的一些上下文,将会很有帮助。顺便说一句,使用的语法是 var $uses=array('ModelOne','ModelTwo');不像你上面写的那样。如果你确实使用了 $uses,宿主模型必须在数组的第一个。