2

问题有点奇怪,我从 2 天开始就一直在与它作斗争,在我将其作为错误发布之前只是想确保这不是我的错误。

我有一个干净的 CakePHP 副本,我有一个已设置的数据库,Cake 可以毫无问题地连接到我的数据库。在我的数据库中,我有一个名为“news”的表,并且我有一个带有以下代码的控制器:

<?php

class UsersController extends AppController {
    public $uses = array('News');

    public function news(){
        $news = $this->News->find('all');
        var_dump($news);
        die;
    }
}

只要我不为我的表创建模型文件,此查询就会成功运行,但是一旦我创建以下模型文件(在模型文件夹中另存为 News.php),我就会看到代码后出现的错误:

<?php

class NewsModel extends AppModel {
}

错误:

Fatal error: Cannot redeclare class NewsModel in C:\...\cakephp\app\Model\News.php on line 4

我在 windows 上运行 php > 5.2.8

4

3 回答 3

6

那么,类应该是“新闻”,没有模型部分。

class News extends AppModel { }

文档到处都显示示例。NewsController由于调用了“新闻”控制器和新闻组件,可能会造成混淆NewsComponent,但从我得到的答案来看,这是为了避免名称冲突(这让您在阅读后有一个做事的时刻)。

对于未来的开发,我发现只烘焙模型/控制器/视图然后删除我不需要的内容并更改我需要更改的内容会更容易。

于 2013-10-16T13:17:14.310 回答
0

尝试使用 var $useTable = 'news'; 在您的模型中..希望您的问题能够解决。

于 2013-10-18T12:09:46.567 回答
-1

模型应该是单数的,以更好地适应蛋糕传统

<?php
App::uses('AppModel', 'Model');
class New extends AppModel {

}
?>

$news = $this->New->find('all');
于 2013-10-16T15:33:00.123 回答