这个问题有点奇怪,我在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&gt; 5.2.8
答案 0 :(得分:6)
嗯,班级应该是“新闻”,没有模型部分。
class News extends AppModel { }
文档显示examples无处不在。可能会有混淆,因为“新闻”控制器被称为NewsController
和新闻组件,NewsComponent
,但从我得到的答案here,它是为了避免名称冲突(它给你一个你读完之后的那一刻。)
对于未来的开发,我发现只需烘焙模型/控制器/视图然后删除我不需要的内容并更改我需要更改的内容就更容易了。
答案 1 :(得分:0)
尝试使用var $ useTable =&#39; news&#39 ;;在你的模型.. 希望你的问题能解决。
答案 2 :(得分:-1)
模型应该是单一的,以更好地适应蛋糕惯例
<?php
App::uses('AppModel', 'Model');
class New extends AppModel {
}
?>
$news = $this->New->find('all');