如何将变量的值传递给html-> link()$ title?

时间:2013-09-29 08:20:35

标签: html cakephp hyperlink helper

我的代码如下所示:

<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

3 个答案:

答案 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,并将其替换为所有其他帮助。