Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 合并键=>;将值转换为symfony中的值_Php_Symfony - Fatal编程技术网

Php 合并键=>;将值转换为symfony中的值

Php 合并键=>;将值转换为symfony中的值,php,symfony,Php,Symfony,这主要是出于好奇,但我希望能够做到这一点 基本上,我希望使用Symfony的FormBuilder将自动对焦输入表单。可以通过使用类似这样的东西来输入 ->add('textField', null, array('attr' => array('class' => 'text-field-ex', 'autofocus' => true))) 但是,这最终会在结果表单中生成autofocus=“1”。这对Chrome来说很好,但Firefox不

这主要是出于好奇,但我希望能够做到这一点

基本上,我希望使用Symfony的FormBuilder将
自动对焦
输入表单。可以通过使用类似这样的东西来输入

->add('textField', null,
            array('attr' => array('class' => 'text-field-ex', 'autofocus' => true)))
但是,这最终会在结果表单中生成
autofocus=“1”
。这对Chrome来说很好,但Firefox不喜欢这种格式;它更喜欢独自生活,而不是作为一种属性;因此它不起作用。这在原始php代码中很容易做到,但出于某种原因,Symfony不想这样做

我知道这已经(某种程度上)得到了解决,正如评论中所建议的,这可以用Javascript相对容易地处理,这在我看来似乎是一个不完美的解决方案,因为它固有的不稳定性。我让它以这种方式工作,但我宁愿让代码本身在第一次正确呈现

我试过这样的方法:

$autofocus = 'autofocus';
->add('textField', null,
            array('attr' => array('class' => 'text-field-ex', $autofocus)))
但这只是将结果表单字段变成
“0”=autofocus
,仍然不起作用


有没有人对如何在Symfony中直接处理这个问题有任何想法

您只需覆盖模板中的
block_小部件
(请参阅),并将其输出属性的方式替换为以下内容:

{% for attrname, attrvalue in attr %}
  {% if attrname == 'autofocus' %}
    autofocus
  {% else %}
    {{ attrname }}="{{ attrvalue }}"
  {% endif %}
 {% endfor %}

我想它比javascript解决方案更简洁。

您是否尝试过autofocus=“autofocus”是的。同样的问题。除非您希望修改底层Symphony代码,否则这似乎是被询问和回答的,您只是对答案不满意。@PatrickQ这是正确的。然而,正如我提到的;我发现答案是不充分的,因为这种功能应该是可能的。使用原始php非常简单。我可能对修改底层代码感兴趣;这似乎是一个有用的功能。如果你对这条道路有任何建议,我将不胜感激。这是一个很好的方法,但遗憾的是它没有奏效;它返回了
autofocus=”“
。我尝试使用
replace
,但这似乎只适用于键或值;据我所知,我找不到任何改变操作符的方法。你直接通过Twig输出HTML,所以它工作(我刚刚尝试过,它工作得很好)-所以要么你的覆盖没有被考虑,要么你在代码中做其他事情……我理解Twig的工作原理。在Firefox中试试。它在Chrome上运行良好,但Firefox需要自动对焦才能独立运行。