【问题标题】:Cakephp 2.2 Blog Tutorial undefined constant errorsCakephp 2.2 博客教程未定义常量错误
【发布时间】:2014-07-20 00:34:43
【问题描述】:

已经复制粘贴了 cakephp 2.2 中博客教程中的代码,但它不起作用。 得到以下错误。 注意(8):未定义常量Html的使用 注意(8):使用未定义的常量形式 注意(8):使用未定义的常量帖子 注意(8):未定义常量 all 的使用 注意(8):未定义索引:all 下面是 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>

【问题讨论】:

    标签: cakephp


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 非常感谢马克,一直为此发疯。知道它是一件小而愚蠢的事情,只是我自己想不通。
    • 点赞!对于一个严重缺乏记录的问题,这是一个如此简单的解决方案。
    【解决方案2】:

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

    Mavericks 附带一个使用智能引号的设置,它使所有简单撇号变成开始和结束撇号。如果您进入系统偏好设置->键盘->文本->取消选中使用智能引号和破折号,您将能够编写一个普通的简单撇号。这解决了我的问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多