0

我的代码如下所示:

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

我正在尝试以 id 的形式获取链接/cake/posts/view/<id>,其中 id 为 1、2、3 等。

Cake给出的错误是

错误:在非对象上调用成员函数 link()

完整代码在这里: http: //pastebin.com/hexVvkfk

4

3 回答 3

4

您不使用$html-> link. 链接由 HtmlHelper 创建,它是 View 对象的扩展,因此您需要$this->Html->link从视图文件中使用。

此外,您似乎将操作与控制器混为一谈。为了实现您想要的,您更有可能需要:

echo $this->Html->link($post['Post']['title'], array(
    'controller' => 'posts', // Optional if already in the PostsController
    'action'=>'view',
    $post['Post']['id']
));
于 2013-09-29T09:26:11.057 回答
2

尝试这个:

$this->Html->link(__('View', true), array('action'=>'post', $post['Post']['id']))

参数是,当您单击“查看”链接时post.id,它会被传入。/cake/posts/view/[Args]

于 2013-09-29T08:26:42.320 回答
2

助手是视图属性,而不是变量

没有提到 CakePHP 的版本,但是帮助器的使用方式从这里改变了:

$html->...

对此:

$this->Html->...

这种语法是在 1.3 中引入的$html->...,并且在 2.0 中删除了旧的支持。要更正错误,只需将所有其他助手替换为和相同$html即可。$this->Html

于 2013-09-29T13:55:23.463 回答