您好我尝试了各种各样的事情,但不确定我是否想要使事情变得复杂。很简单,我想为“西班牙语”这个词添加一个小图像国家标志。和'英语'并且有一个' 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'));
}
答案 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')
));