2011-02-13 88 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; 

我希望這可以工作