2015-02-12 103 views
1

目前正在Cakephp 2.x上工作,並且經歷了以下錯誤。我們正在升級一個用程序化php編寫的舊項目,用更多的概念來蛋糕php。所以我們必須使用沒有任何蛋糕約定的現有數據庫。目前我面臨的問題是數據庫中有一個名爲tranz_vehicle的表。我有一個名爲vehicle.php模型,下面是它Cakephp模型不起作用

<?php 
class Vehicle extends AppModel{ 

    public $useTable="tranz_vehicle"; 

} 
?> 

我用$ useTable即使在代碼中,它顯示的是型號車輛下面的錯誤

表車輛數據源默認沒有被發現。

我不能修改表名..有什麼建議嗎?我是一個總新手cakephp

也有數據庫中的用戶表已經和我創建了一個模型用戶,它的作品完美。問題是其餘的表像tranz_vehicle

+0

表名必須是多個車輛和型號名稱必須是單數 – 2015-02-12 07:40:26

+0

@SharmaVikram我知道這個約束,但問題是數據庫已經創建了這個名稱,並有大量的數據。還有許多重要的關係。所以不可能將表名改爲車輛。這就是爲什麼我正在尋找選項,使模型指向另一個表。 – 2015-02-12 07:43:49

回答

3

是您的車型文件名是Vehicle.php或vehicle.php? 如果它是小寫,表示您的模型正在生成,並且不能從文件讀取useTable,因爲它不使用該文件。 也可以顯示你的表主鍵?如果它不是'id',則必須用此代碼指定它。

public $primaryKey = 'example_id'; 
+0

感謝它的完美工作 – 2015-02-12 08:35:37

+0

歡迎您:) – 2015-02-12 08:44:35

0

不要忘記清空TMP /緩存/型號TMP /緩存/持續任何東西之前。

要強制CakePHP中使用的其他數據庫您有兩種基本選擇:

1)像你這樣

使用表前綴

class Example extends AppModel { 
public $tablePrefix = 'alternate_'; // will check 'alternate_examples' table 

}

2)使用$ useTable

class Exemple extends AppModel { 
public $useTable = 'exmp'; // will check 'exmp' table 

}