CakePHP将图像添加到echo $ this-> Html->链接

时间:2016-08-08 12:32:53

标签: image cakephp cakephp-2.8

您好我尝试了各种各样的事情,但不确定我是否想要使事情变得复杂。很简单,我想为“西班牙语”这个词添加一个小图像国家标志。和'英语'并且有一个' Alt'用这些词代替。以下工作正常,只是文本和原样,但让图像替换或与单词并排是很酷的。有任何帮助吗?

    echo $this->Html->link('Spanish', array('controller'=>'settings', 'action'=>'lang', 'spa'),
        array('rel'=>'nofollow'));
}

else {
    echo $this->Html->link('English', array('controller'=>'settings', 'action'=>'lang', 'eng'),
        array('rel'=>'nofollow'));
}

2 个答案:

答案 0 :(得分:1)

您可以使用image方法仅使用url属性输出链接的图片: -

<?php

echo $this->Html->image(
    'spain.jpg', 
    array(
        'alt' => 'Spanish',
        'url' => array('controller' => 'settings', 'action' => 'lang', 'spa')
    )
);

或者,您可以通过组合常规的CakePHP link方法和image方法来包含带有文本链接的图像: -

<?php

echo $this->Html->link(
    h('Spanish') . $this->Html->image('spain.jpg', array('alt' => 'Spanish')),
    array('controller' => 'settings', 'action' => 'lang', 'spa'),
    array('escape' => false, 'rel' => 'nofollow')
);

使用link方法,您需要记住阻止Cake使用img转义'escape' => false标记。如果你禁用这样的转义,那么记住要使用h()方法来阻止任何HTML注入(我已经在我的例子中展示了这一点&#39;西班牙语&# 39;但只有当它来自一个变量时才有必要。)

答案 1 :(得分:0)

如果您使用cake2,请参阅食谱的this链接

echo $this->Html->image("spain.jpg", array(
    "alt" => "Spanish language",
    'url' => array('controller' => 'settings', 'action' => 'lang', 'spa')
));