我的代码如下所示:
<li>
<?php echo $html-> link($post['Post']['title'], array('action'=>'post', $post['Post']['id'])); ?>
</li>
我正在尝试以/cake/posts/view/<id>
的形式获取一个链接,其中id为1,2,3等。
Cake给出的错误是
错误:在非对象上调用成员函数link()
此处的完整代码:http://pastebin.com/hexVvkfk
答案 0 :(得分: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']
));
答案 1 :(得分:2)
试试这个:
$this->Html->link(__('View', true), array('action'=>'post', $post['Post']['id']))
参数为post.id
,当您点击“查看”链接时,该参数会传递到/cake/posts/view/[Args]
。
答案 2 :(得分:2)
未提及CakePHP的版本,但使用帮助程序的方式改变了:
$html->...
对此:
$this->Html->...
此语法为introduced in 1.3,并且在2.0中删除了较旧的$html->...
支持。要更正错误,只需将所有$html
替换为$this->Html
,并将其替换为所有其他帮助。