0

嗨,我尝试了各种事情,但不确定我是否试图让事情变得过于复杂。很简单,我想为“西班牙语”和“英语”这个词添加一个小图像国家标志,并用这些词代替“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'));
}
4

2 回答 2

1

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

<?php

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

link或者,您可以通过结合普通的 CakePHP方法和以下方法来包含带有文本链接的图像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您需要记住的方法,以防止 Cakeimg使用'escape' => false. 如果您像这样禁用转义,则记住通过使用该h()方法来转义任何用户提供的文本以防止任何 HTML 注入(我在我的示例中展示了这一点,包装了单词“Spanish”,但这仅在来自一个变量)。

于 2016-08-08T13:10:02.857 回答
0

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

echo $this->Html->image("spain.jpg", array(
    "alt" => "Spanish language",
    'url' => array('controller' => 'settings', 'action' => 'lang', 'spa')
));
于 2016-08-08T12:39:24.027 回答