尝试学习CakePHP我完成了Blog Tutorial没有问题。
浏览器显示Cake欢迎页面,找到数据库连接文件,Cake成功连接到数据库。
我唯一不同的是,我使用phpMyAdmin在名为posts
的数据库中创建default,
表,但内容与教程中的内容完全相同。
我为什么要
Blog Tutorial - Adding a layer中的错误:在数据源默认值中找不到模型Post的表帖子。
? 这是模型:
<?php
class Post extends AppModel {
}
这是控制器:
<?php
class PostsController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
$this->set('posts', $this->Post->find('all'));
}
}
这是视图:
<!-- File: /app/View/Posts/index.ctp -->
<h1>Blog posts</h1>
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Created</th>
</tr>
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['Post']['id']; ?></td>
<td>
<?php echo $this->Html->link($post['Post']['title'],
array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); ?>
</td>
<td><?php echo $post['Post']['created']; ?></td>
</tr>
<?php endforeach; ?>
<?php unset($post); ?>
</table>
这就是Stack Trace:
CORE\Cake\Model\Model.php line 3243 → Model->setSource(string)
CORE\Cake\Model\Model.php line 2696 → Model->getDataSource()
APP\Controller\PostsController.php line 5 → Model->find(string)
[internal function] → PostsController->index()
CORE\Cake\Controller\Controller.php line 486 → ReflectionMethod->invokeArgs(PostsController, array)
CORE\Cake\Routing\Dispatcher.php line 187 → Controller->invokeAction(CakeRequest)
CORE\Cake\Routing\Dispatcher.php line 162 → Dispatcher->_invoke(PostsController, CakeRequest, CakeResponse)
APP\webroot\index.php line 111 → Dispatcher->dispatch(CakeRequest, CakeResponse)
答案 0 :(得分:1)
代码似乎没问题。检查database.php
以确保数据库名称正确无误。
答案 1 :(得分:0)
加入模型
<?php
class Post extends AppModel {
public $name = 'Post';
}
?>
答案 2 :(得分:0)
确保您的数据库用户对表有选择权限。我有同样的错误,这是我的问题。