【问题标题】: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/&lt;id&gt; 形式的链接,其中 id 为 1、2、3 等。

Cake 给出的错误是

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

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

【问题讨论】:

  • 你使用的是什么版本的 CakePHP?

标签: html cakephp hyperlink helper


【解决方案1】:

您不会使用$html-&gt; link 创建链接。链接由 HtmlHelper 创建,它是 View 对象的扩展,因此您需要使用视图文件中的 $this-&gt;Html-&gt;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-&gt;... 支持。要更正错误,只需将所有 $html 替换为 $this-&gt;Html 并为所有其他助手替换。

    【讨论】:

      【解决方案3】:

      试试这个:

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

      参数是post.id,当你点击“查看”链接时,它被传递到/cake/posts/view/[Args]

      【讨论】:

        猜你喜欢
        • 2021-10-05
        • 2019-09-13
        • 1970-01-01
        • 2017-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多