Font Awesome 字形未显示为表单助手按钮标题

Font Awesome glyph not being displayed as the form helpers button title

CakePHP 版本:4.0.1
Font Awesome 版本:free-5.12.0 - here

我刚刚从 Cake 3.7.5 版升级到 4.0.1 版,字体很棒的字形不再显示为按钮标题。

我按照食谱中的信息 here 来配置按钮,详情如下:

$this->Form->button('<i class="fas fa-search"></i>', [
    'type' => 'submit',
    'name' => 'AccountChoose',
    'class' => 'btn btn-ae-lookup-as-glyph'
]);

我尝试在按钮配置中使用 'escape' => true 以防它与 html 编码有关但没有改变。

我也尝试过这样声明标题,但仍然没有改变。

$this->Form->button("<i class='fas fa-search'></i>", [

字形显示在按钮外,所以我知道它在 3x 和 4x 分支之间发生了变化。

我的问题。

是否有一种按钮配置可以让我在 4.0.1 版中将字形显示为按钮标题或者也许 已经设计出来在这种情况下有没有替代方法。

谢谢 Z.

@ndm - 很好,一切正常。感谢您创建 Pr.

文档似乎已过时,因为 CakePHP 4.x 按钮内容默认为 HTML 实体编码。来自迁移指南:

Cake\View\Helper\FormHelper::button() now HTML entity encodes the button text and HTML attributes by default. A new option escapeTitle has been added to allow controlling escaping the title separately from other HTML attributes.

因此您需要明确禁用转义(这需要使用 false,而不是 true)。 4.x 还引入了 escapeTitle 选项,您应该使用它来代替 escape,因为后者现在仅适用于 HTML 属性:

$this->Form->button('<i class="fas fa-search"></i>', [
    'type' => 'submit',
    'name' => 'AccountChoose',
    'class' => 'btn btn-ae-lookup-as-glyph',
    'escapeTitle' => false,
]);

另见