CakePHP добавляет изображение в echo $this->Html->link

Привет, я пробовал разные вещи, но не уверен, что пытаюсь усложнить ситуацию. Проще говоря, я хочу добавить флаг страны с маленьким изображением для слов "испанский" и "английский" и вместо этого использовать тег "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 ответа

Вы можете вывести только связанное изображение, используя 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 (я показал это в моем примере, оборачивая слово "испанский", но это необходимо, только если это происходит из переменной).

Если вы используете торт2, смотрите эту ссылку на кулинарную книгу

echo $this->Html->image("spain.jpg", array(
    "alt" => "Spanish language",
    'url' => array('controller' => 'settings', 'action' => 'lang', 'spa')
));
Другие вопросы по тегам