2011-02-13 58 views
3

我是cakePhp开发新手。我坚持下面的问题: 我已经做了几个模型,控制器和视图 - 它很好。问题是,在生产之后,我必须在逻辑上与其他表“连接”的db中创建新表(Transactionaltemp表和相应的模型和控制器),但技术上并不需要 - 例如,它拥有user_id,time,ip和类似的临时信息。所以,其他表不需要直接连接到那个表上。 的问题是当我尝试(在一些其他的控制器比transactionaltemps_controller):CakePHP不加载模型

$this->loadModel('Transactionaltemp'); 

我得到错误 - 该模型没有发现(因为模型中缺少缓存这是真的)。足够有趣的transactionaltempls_controller在缓存中(在cake_controllers_list文件中)。 我尝试下面的东西来解决这个问题:

  1. 清除缓存
  2. 禁用缓存
  3. 使用uses={..}代码在控制器中,我想用mymodels_controller
  4. 试图尝试使用init('Transactionaltemp')

没有成功。这里是对应的代码: 模型:

<?php 
class Transactionaltemp extends AppModel 
{ 
    var $name = 'Transactionaltemp'; 
    function beforeSave() { 
    return true; 
    } 
} 
?> 

控制器:

<?php 
class TransactionaltempsController extends AppController 
{ 
    var $name = 'Transactionaltemps'; 
    var $scaffold; 

} 
?> 

我会非常感谢任何帮助!

+0

什么是你定义模型中的文件的名称? – Leo 2011-02-13 19:56:33

+0

你可以从自己的控制器(Transactionaltemps)访问模型吗? – Leo 2011-02-13 20:01:57

+0

是的,我可以从自己的控制器访问模型。我定义模型的文件的名称与模型的类名相同 - transactionaltemp.php – Stefan 2011-02-15 08:24:04

回答

0

如果要连接到具有不同的名称,模型中的一个表名,你必须在它指定表名:

<?php 
class Transactionaltemp extends AppModel 
{ 
    var $uses = 'Transactional'; 
    var $name = 'Transactionaltemp'; 
    function beforeSave() { 
     return true; 
    } 
} 
0

尝试

App::Import('Model', 'YourModelName'); 
在控制器

(或您想)。

1
App:Import('Model','Transactionaltemp'); 
$this->Transactionaltemp= new Transactionaltemp; 

我希望这可以工作