我正在尝试使用CakePHP而且我无法使我的应用程序正常工作,因为CakePHP“认为”我的模型名称是“Tach”,而实际上是“Tache”。
为什么会这样?
我的控制器定义为: 应用程序/控制器/ 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';
}
如果我在控制器中使用'Tache',我会收到错误:
$allTaches = $this->Tache->find('all');
但如果我使用'Tach',我就不会收到任何错误:
$allTaches = $this->Tach->find('all');
为什么我不能使用型号名称'Tache'?难道我做错了什么 ?顺便说一下,我在php 5.3上,我的CakePHP版本是1.3.8
谢谢!
亚历
答案 0 :(得分:11)
CakePHP的默认变形规则认为Taches是Tach的复数形式。
您需要使用Inflector类添加自定义变形。
请参阅以下内容:
食谱的第3.4.6 Inflections节。其中介绍了自定义变形。
总结一下,您需要在app / config / bootstrap.php文件中添加以下内容:
Inflector::rules('plural', array('irregular' => array('tache' => 'taches')));
答案 1 :(得分:0)
您可以使用TachesController中的模型名称设置$ uses:
class TachesController extends AppController {
var $uses = 'Tache';