Cakephp 2.2博客教程未定义的常量错误

时间:2012-10-13 09:31:50

标签: cakephp

复制粘贴了cakephp 2.2中的博客教程中的代码,但它不起作用。 出现以下错误。 注意(8):使用未定义的常量Html 注意(8):使用未定义的常量Form 注意(8):使用未定义的常量帖子 注意(8):使用未定义的常量全部注意(8):未定义的索引:全部 下面是PostsController和index.ctp的代码。

<?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) {
      $this->Post->id = $id;
      $this->set(’post’, $this->Post->read());
  }
}
?>

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 $post[’Post’][’title’]; ?>
 </td>
 <td><?php echo $post[’Post’][’created’]; ?></td>
 </tr>
 <?php endforeach; ?>
 <?php unset($post); ?>
 </table>

2 个答案:

答案 0 :(得分:3)

不要使用'因为它们不是php语法(仅在mysql中使用)

使用'代替(简单撇号):

$this->set('posts', $this->Post->find('all'));

此外<?php unset($post); ?>是不必要的,你应该转义输出echo h($post[’Post’][’title’]),你应该省略你的php文件中的结束标记?>(不是在视图文件中)

答案 1 :(得分:0)

我也有一段时间遇到这个问题。为了解决 OS X Mavericks 用户的潜在问题:

Mavericks设置为使用智能引号,使所有简单撇号进入开始和结束撇号。如果您进入系统偏好设置 - &gt;键盘 - &gt;文字 - &gt; UNCHECK使用智能引号和破折号,您将能够编写正常的简单撇号。这解决了我的问题。

请注意,在小牛队中,即使是textedit也会将你的撇号编辑为简单的开启和关闭撇号。