2011-06-15 97 views
3

我有動態創建的表,我想通過模型訪問它 。由於這些表是動態創建的,因此我沒有 模型.php文件。這些表格創建符合 Cake的命名約定。我嘗試使用loadModel()加載它們,但是 Cake仍然抱怨表格丟失。Cakephp:加載沒有模型文件的模型

是否有解決方案?

謝謝。

回答

0

帶班

class Dynamic extends AppModel { 
    var $name = 'Dynamic' 
    var $useTable = null; 
} 

在你的控制器的動作

$this->Dynamic->useTable = 'newly-created-table'; 

這不是測試創建/app/models/dynamic.php,讓我知道如果使用CakePHP 2.1有問題

+0

我嘗試過了,我還是隻要我調用$ userInstance = ClassRegistry得到「失蹤表」頁面: :初始化( '動態');我必須這樣做,因爲我在一個組件中。 – TopQ 2011-06-15 22:05:49

4

寫這篇文章的。 2

在你的控制器中添加App::uses('AppModel', 'Model');。然後實例模型

$RemoteHeader = new AppModel(array(
       'table' => 'SOP10100', 
       'ds' => 'external', 
       'name' => 'RemoteHeader', 
       'alias' => 'InvoiceHeader', 
       'primaryKey' => 'id', 
       'hasMany' => array(
        'InvoiceDetail' => array(
         'foreignKey' => 'SOPNUMBE', 
         'counterCache' => false 
       )))); 

然後用任何型號參數獲取數據,您需要:

$data = $RemoteHeader->find('all', array(
      'fields' => array(
      'SOPNUMBE', 
      'CUSTNAME', 
      'DUEDATE', 
      'DOCDATE', 
      'DOCAMNT', 
      'SUBTOTAL'))); 
+1

非常好!完全是我需要的!乾杯! – 2013-12-03 18:13:57