CakePHP:如何使用表单助手在按钮标题中使用HTML实体

CakePHP:如何使用表单助手在按钮标题中使用HTML实体,cakephp,html-entities,Cakephp,Html Entities,我想用复选标记作为按钮的文本。我想要的实体是✓但是当我使用Form Helper将其作为按钮的文本输入时,它总是将前导的符号和转换为&以便文本显示但不显示实体 下面是我创建按钮的方式: echo $this->Form->button( '✓', array( 'type' => 'submit', 'id' => $checklistItem['ChecklistItem']['

我想用复选标记作为按钮的文本。我想要的实体是
但是当我使用Form Helper将其作为按钮的文本输入时,它总是将前导的符号和转换为
&以便文本显示但不显示实体

下面是我创建按钮的方式:

echo $this->Form->button(
    '✓', 
    array(
        'type' => 'submit', 
        'id' => $checklistItem['ChecklistItem']['id'], 
        'escape' => 'false'
    )
);
echo $this->Form->button(
    '✓', 
    array(
        'type' => 'submit',
        'id' => $checklistItem['ChecklistItem']['id'], 
    ),
    array('escape' => 'false')
);
生成的HTML如下所示:

&#x2713

这显然不会呈现实体

我通过设置
“escape”=>“true”尝试了它,但这根本没有效果


有什么想法吗?

您不需要将其转义为false,默认情况下,它转义为false

  echo $this->Form->button('✓',  
          array(
               'type' => 'submit', 
               'id' => $checklistItem['ChecklistItem']['id']
           )
  );

您需要将escape移动到按钮的第三个元素:

echo $this->Form->button(
    '✓', 
    array(
        'type' => 'submit', 
        'id' => $checklistItem['ChecklistItem']['id'], 
        'escape' => 'false'
    )
);
echo $this->Form->button(
    '✓', 
    array(
        'type' => 'submit',
        'id' => $checklistItem['ChecklistItem']['id'], 
    ),
    array('escape' => 'false')
);

而且,这个问题已经得到了回答。

我想你遗漏了什么。您的按钮与OP中的按钮一模一样。:/i我不明白您想说什么。你的答案与问题中的代码完全一样,只是因为你删除了所有的换行符,所以更难阅读。我的答案与问题不完全一样,如果你执行我的代码,那么你会看到它是一个解决方案,显示勾号,这是提问者所要求的。就换行符而言,我已经重新格式化了代码。@iopener,您使用的是
'escape'=>'false'
,而它应该是
'escape'=>false
。按钮函数只能有两个参数,请检查此处。但是您在这里传递了三个参数。是的,表单参数与html参数不同。这是我第一次检查的东西之一。你用的是什么版本的蛋糕。此代码在v2.3.0稳定版中工作。使用版本2.2.0。根据上面的评论,=>'false'语法也不起作用。你是说这个参数是在2.3.0中添加的,它也会将'false'解析为布尔值false吗?永远不要将true/false用作字符串('true'/'false')。唯一其他有效的表示形式是0/1。您可以通过这种方式将false的布尔状态完全反转为true。。。