1

已经复制粘贴了 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>
4

2 回答 2

3

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

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

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

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

于 2012-10-13T09:42:07.070 回答
0

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

Mavericks 附带一个使用智能引号的设置,它使所有简单的撇号变成开始和结束撇号。如果您进入System Preferences->Keyboard->Text->UNCHECK Use Smart quotes and dashes,您将能够编写一个普通的简单撇号。这为我解决了这个问题。

请注意,在 Mavericks 中,即使是 textedit 也会将您的撇号从简单的 on 编辑为开头和结尾的撇号。

于 2014-07-19T16:34:43.130 回答