我在一个项目中看到property-path可以像这样使用方括号:
foreach ($foo as $i => $object) {
$builder->add("foo_{$i}", 'checkbox', array(
'property_path' => "[$i].foo",
));
}
这似乎将每个字段与给定foo
的对象的id
属性相关联,但我还没有找到任何关于它的文档。仅this example。
知道这是什么意思以及记录在哪里?
答案 0 :(得分:3)
这就是Symfony UPGRADE from 2.0 to 2.1所说的:
属性路径到数组的映射已更改。
以前,属性路径
"street"
映射到某个类的字段$street
(或其访问者getStreet()
和setStreet()
)以及索引['street']
实现\ArrayAccess
的数组或对象。现在,属性路径
"street"
仅映射到类字段(或访问器),而属性路径"[street]"
仅映射到索引。
另请参阅Symfony关于the PropertyAccess component的文档。
在FormType Field页面中解释了property_path
的目的,但我想您已经知道它的用途。
对于您发布的代码,我猜(我只使用了一次Symfony表单,只是略微表面)对于对象bar
的每个属性$foo
,它创建了一个{ {1}}。
提交表单后,<input type="checkbox" name="foo_bar">
会告知表单将名为property_path
的复选框的值放入foo_bar
,其中$data['bar']->foo
是方法{返回的对象表格的{1}}。
答案 1 :(得分:-1)
这是一个PHP的东西。如果在其周围添加波浪形括号,而不是将其从字符串中分离出来,则可以在字符串中使用变量。
$x = "world";
echo "Hello, {$x}";
// is equivalent to
echo "Hello, " . $x;
记录Here,只需查找“卷曲”。