2012-07-03 38 views
2

這是cakephp中的一條規則,在創建表格時,它必須是模型的複數形式。事情是,由於一些複雜的情況,我不能在這裏重新命名一個單數形式的表格。這就是cakephp給我一個錯誤的原因。我試過這個:by-passing cakephp命名約定爲表

class Color_Schema extends AppModel{ 
    var $name = 'ColorSchema'; 
    var $useTable = 'color_schema'; 
} 

但它不起作用。

它仍然給了我這個錯誤...

Error: Table color_schemas for model ColorSchema was not found in datasource default. 
+0

在你的錯誤代碼表名和你的班級不匹配...這是一個錯字嗎? – Ben

+0

nope ..我的表名實際上是color_schema ....它的單數形式..但蛋糕有他自己的命名規則,對於表格,它應該是它的模型的複數形式..但是由於複雜的情況,我不應該將我的表重命名爲此錯誤將被註銷。請幫忙 – Charmie

+0

在提交我的答案之前,我應該問過這個問題,但是您使用的是什麼版本的Cake? CakePHP <2.0或2.0+? – Hoff

回答

5

看來,定製變形器規則是這裏的解決方案。請看看 Inflection configuration。類似於

Inflector::rules('plural', array('irregular' => array('color_schema' => 'color_schema'))); 

雖然我不是Inflector專家,但可以爲您工作。

+0

聖母牛!像魔術一樣工作!我真的很需要..非常感謝你! – Charmie

+1

很高興我可以幫助:) – wnstnsmth

+0

如果你命名你的類並正確引用它們,應該沒有必要混淆變形規則。 – Hoff

0

我看不到您嘗試訪問模型的代碼,但通過錯誤消息的外觀,您在引用模型時忘記了下劃線。你需要做的是這樣的:

$this->Color_Schema->read(null, 1); 

另外,不要忘了該模型在控制器的頂部添加到$uses陣列:

public $uses = array('Color_Schema');