2011-03-27 100 views
7

我尝试CakePHP现在,我无法让我的应用程序工作,因为CakePHP“认为”我的模型名称是'TACH',实际上是'TACH'。CakePHP有错误的模型名称

为什么这么说?

我的控制器被定义为: 应用程序/控制器/ taches_controller.php

class TachesController extends AppController { 

function index() { 

    $allTaches = $this->Tache->find('all'); 

    $this->set('taches', $allTaches); 

} 

}

这是我的模型: 应用程序/模型/ tache.php

class Tache extends AppModel { 

var $useTable = 'taches'; 

}

我得到一个错误if我用“环节 - ”在我的控制器:

 $allTaches = $this->Tache->find('all'); 

但是,如果使用“测速”,我没有得到任何错误:

 $allTaches = $this->Tach->find('all'); 

为什么我不能使用型号名称“环节 - ”?难道我做错了什么 ?顺便说一句,我在PHP 5.3和我的CakePHP版本是1.3.8

谢谢!

亚历

+0

您正在使用什么版本的CakePHP的? – 2011-03-27 22:58:14

+0

对不起,我忘了。它是1.3.8。 – Alex 2011-03-27 22:59:37

+0

看起来你的Tach是某种自动放弃权力的受害者。虽然我不知道CakePHP .. – 2011-03-27 23:01:36

回答

11

CakePHP的默认的变形规则认为去印是转速表的复数形式。

您需要使用Inflector类添加自定义变形。

请参阅以下内容:

回顾一下你需要添加类似以下到您的应用程序/配置/ bootstrap.php中的文件:

Inflector::rules('plural', array('irregular' => array('tache' => 'taches'))); 
+0

哇,非常感谢Robert! – Alex 2011-03-27 23:07:14