CakePHP帮助博客教程

时间:2010-12-28 13:22:41

标签: php cakephp

我刚刚在CakePHP网站上关注教程,创建了一个简单的博客,作为了解Cake的一些方法。但是我遇到了一个错误并且不确定为什么因为我完全遵循了教程所说的内容。错误:

Notice (8): Undefined property: View::$Html [APP/views/posts/index.ctp, line 17]
Fatal error: Call to a member function link() on a non-object in /Users/cameron/Sites/dentist/app/views/posts/index.ctp on line 17

这是我的posts_controller

<?php
class PostsController extends AppController {
    var $helpers = array('Html', 'Form');
    var $name = 'Posts';

    function index() {
         $this->set('posts', $this->Post->find('all'));
    }

    function view($id = null) {
        $this->Post->id = $id;
        $this->set('post', $this->Post->read());
    }
}
?>

这是我的模特

<?php

class Post extends AppModel {
    var $name = 'Post';
}

?>

这是我的观点

<!-- File: /app/views/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; ?>

</table>

更新

原来我使用的是旧版本的CakePHP。

2 个答案:

答案 0 :(得分:2)

来自http://book.cakephp.org/view/1572/New-features-in-CakePHP-1-3

  

助手现在可以通过以下方式解决   $ this-&gt; Helper-&gt; func()除了   $ helper-&GT; FUNC()。这允许查看   用于共享名称的变量和帮助程序   而不是造成碰撞。

你正在使用1.3以下的CakePHP版本。

答案 1 :(得分:0)

而不是视图中的这一行,

<?php echo $this->Html->link($post['Post']['title'], array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); ?>

用它来调用助手:

<?php echo $html->link($post['Post']['title'], array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); ?>