CakePHP的型号名称错误

时间:2011-03-27 22:50:38

标签: php cakephp model

我正在尝试使用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

谢谢!

亚历

2 个答案:

答案 0 :(得分:11)

CakePHP的默认变形规则认为Taches是Tach的复数形式。

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

请参阅以下内容:

总结一下,您需要在app / config / bootstrap.php文件中添加以下内容:

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

答案 1 :(得分:0)

您可以使用TachesController中的模型名称设置$ uses:

class TachesController extends AppController {

    var $uses = 'Tache';