CakePHP 从表字段创建外部链接


CakePHP Creating External Links from Table Field

我对 CakePHP 很陌生,但我正在努力从表中的字段中提取一个 URL,从而建立外部链接。它目前正在使用我们的域,然后将网址放在它后面。

有谁知道如何强制它以便使用外部 wed 地址?

这是我使用的代码:

<a href="<?php echo $this->Html->url(array($result_array['Result']['results_video'])); ?>"><?php echo $this->Html->image('certificate_image.png', array('escape' => false)); ?></a>

如果 URL 已经是字符串:

<a href="<?php echo $result_array['Result']['results_video']; ?>">
    <?php echo $this->Html->image('certificate_image.png'); ?>
</a>

如果它是一个数组,你的代码是正确的,除了转义选项必须作为第二个参数进入link()方法,而不是在image()方法中。

<a href="<?php $this->Html->url($result_array['Result']['results_video'], ['escape' => false]); ?>">
    <?php echo $this->Html->image('certificate_image.png'); ?>
</a>

如果你是 CakePHP 的新手,我建议你更频繁地查看 API 文档,看看一个方法需要什么参数 http://api.cakephp.org/2.6/class-HtmlHelper.html。大多数时候,有一个选项数组可以做你想做的事。

HtmlHelper::url 和 Router::url

采用 url 组件数组,例如:

$this->Html->url(array('controller' => 'page', 'action' => 'index'));
$this->Html->url($result_array['Result']['results_video']);

或字符串,例如:

$this->Html->url('http://www.google.com');
$this->Html->url($variable['Model']['url']);

您唯一可以传递给 url 方法的第二个参数的是 null 或 true,如果为 true,则会将完整的基本 url 附加到从数组组件生成的 url 前面,因此这也不是您传递转义值的地方。

如果不知道你的 $result_array['Result']['results_video'] 值中到底有什么,就很难确切地说出你做错了什么,但我猜你真正想要的是这个,因为从上下文来看,你已经有一个数组:

<?php
     echo $this->Html->link(
         $this->Html->image('certificate_image.png'),
         $result_array['Result']['results_video'],
         array('escape' => false)
     );
?>

(请注意,当您可以使用 HtmlHelper::link 代替时,几乎不需要将值回显到 <a> 标记中)