CakePHP:如何防止HtmlHelper转义标签参数内的HTML标记


CakePHP: How to prevent HtmlHelper from escaping HTML tags inside label parameter

我正在尝试使用HtmlHelper生成一个post链接。这是一个删除链接/按钮,但我想在第一个参数(标签)中使用HTML。类似这样的东西:

echo $this->Form->postLink(
            '<i>A&nbsp;Title</i>',
            array('action' => 'delete', $project['Project']['hashed_id']),
            array('confirm' => 'Are you sure?'));

不幸的是,它只是打印所有标记,而不是渲染它,所以这个就是结果:<i>A&nbsp;Title</i>而不是:标题。

我知道我可以手动编写,但postLink会创建nonce和其他我想保留的魔法。有什么想法可以骗CakePHP做我想做的事吗?

试试这个

echo $this->Form->postLink(
            '<i>A&nbsp;Title</i>',
            array('action' => 'delete', $project['Project']['hashed_id']),
            array('escape'=>false),
            'Are you sure?');

根据文档,第三个参数是一个选项数组,它可以具有与HtmlHelper::link相同的参数。那一个有选项

escape:设置为false可禁用标题和属性的转义。

哦,也可以像这个

echo $this->Form->postLink(
            '<i>A&nbsp;Title</i>',
            array('action' => 'delete', $project['Project']['hashed_id']),
            array('confirm'=>'Are you sure?', 'escape'=>false));

工作方式相同。