我遇到了适合初学者的Cake PHP博客教程的问题。当我尝试打开site.com/posts/index页面时,我收到一条错误声明我需要创建一个PostsController.php文件,但我已经安装了PostsController.php。
我正在使用蛋糕PHP ver 2.3.8
这是我得到的错误
Error: PostsController could not be found.
Error: Create the class PostsController below in file: app\Controller\PostsController.php
我已按照教程编写了这封信,并将文件正确放入目录中。
这是我创建的PostsController.php文件。
<?
class PostsController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
$this->set('posts', $this->Post->find('all'));
}
public function view($id = null) {
if (!$id) {
throw new NotFoundException(__('Invalid post'));
}
$post = $this->Post->findById($id);
if (!$post) {
throw new NotFoundException(__('Invalid post'));
}
$this->set('post', $post);
}
}
?>
这是Post.php文件(模型)
<?
class Post extends AppModel {
}
?>
这是index.ctp文件
<!-- File: /app/View/Posts/index.ctp -->
<h1>Blog posts</h1>
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Created</th>
</tr>
<!-- Here is where we loop through our $posts array, printing out post info -->
<?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>
我已经开始搜索解决方案并发现很多人遇到了同样的问题,但是要么他们的解决方案不适用于我的情况,要么他们自己修复并没有发布解决方案
请帮帮我......
更新
问题已解决,缺少<?php
标记。
答案 0 :(得分:4)
问题是因为您使用<?
代替<?php
来打开您的php。您可以使用完整标记打开php或使用php.ini
启用短标记。
建议不要使用短标签&#34;捷径&#34;而是使用完整的标签组合。随着XML的广泛使用以及其他语言对这些标记的使用,服务器很容易混淆并最终在错误的上下文中解析错误的代码。目标服务器上也可能不支持短标签
答案 1 :(得分:0)
这是我创建的PostController.php文件。
控制器文件的名称是PostsController.php
- 发生错误是因为找不到类。