复制粘贴了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>
答案 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也会将你的撇号编辑为简单的开启和关闭撇号。