【问题标题】:How do I pass a variable's value to html->link() $title?如何将变量的值传递给 html->link() $title?
【发布时间】:2013-09-29 08:20:35
【问题描述】:
我的代码如下所示:
<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
【问题讨论】:
标签:
html
cakephp
hyperlink
helper
【解决方案1】:
您不会使用$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']
));
【解决方案2】:
Helper 是视图属性,而不是变量
没有提到 CakePHP 的版本,但是 helpers 的使用方式改变了:
$html->...
到这里:
$this->Html->...
此语法为 introduced in 1.3,在 2.0 中删除了旧的 $html->... 支持。要更正错误,只需将所有 $html 替换为 $this->Html 并为所有其他助手替换。
【解决方案3】:
试试这个:
$this->Html->link(__('View', true), array('action'=>'post', $post['Post']['id']))
参数是post.id,当你点击“查看”链接时,它被传递到/cake/posts/view/[Args]。