Php 默认情况下,使用对象\选择\标记选择多个选项
我正在运行Symfony 1.2,并利用对象帮助器在表单外部创建一些内联可编辑字段。因为没有符号或脚本式的快捷方式来为多选框创建内联编辑标记(很像input_in_place_editor_标记或Ajax.InPlaceCollectionEditor),所以我使用object_select_标记并将multiple option设置为true来创建一个选择框,如下所示:Php 默认情况下,使用对象\选择\标记选择多个选项,php,symfony1,Php,Symfony1,我正在运行Symfony 1.2,并利用对象帮助器在表单外部创建一些内联可编辑字段。因为没有符号或脚本式的快捷方式来为多选框创建内联编辑标记(很像input_in_place_editor_标记或Ajax.InPlaceCollectionEditor),所以我使用object_select_标记并将multiple option设置为true来创建一个选择框,如下所示: <?php echo object_select_tag($user->getsfGuardPe
<?php
echo object_select_tag($user->getsfGuardPermissions(), 'getId', array (
'include_blank' => false,
'related_class' => 'sfGuardPermission',
'peer_method' => 'doSelect',
'text_method' => '__toString',
'control_name' => 'user_customer_permissions_'.$user_customer->getId(),
'multiple' => true
));
?>
然后,当表单更改时,我将调用observe_字段通过Ajax更新对象。然而
问题在于,$user->getsfGuardPermissions()返回一个sfGuardPermission对象数组。默认情况下不会选择它们
经过一些测试,我发现如果只传递一个sfGuardPermission对象而不是数组,则会选择正确的选项。这是Symfony的一个限制还是有不同的方法?如果symfony默认不允许您选择多个选项,那么很难相信它会包含“多个”选项
查看ObjectHelper.php,显然该函数不需要数组。默认情况下,如何选择多个对象?对象选择标记()将接受与要选择的对象值相对应的整数数组。例如:
<?php
echo object_select_tag(array(4, 5), 'getId', array (
'include_blank' => false,
'related_class' => 'sfGuardPermission',
'peer_method' => 'doSelect',
'text_method' => '__toString',
'control_name' => 'user_customer_permissions_'.$user_customer->getId(),
'multiple' => true
));
?>
默认情况下,将选择值4和5。这并不理想,因为文档将第一个参数列为$object(symfonyapi)。因此,我认为这可以被视为一种解决办法。理想情况下,当multiple标志设置为true时,函数将接受$object参数的对象数组。这将与其他帮助器函数一致。对象选择标记()将接受与所选对象值对应的整数数组。例如:
<?php
echo object_select_tag(array(4, 5), 'getId', array (
'include_blank' => false,
'related_class' => 'sfGuardPermission',
'peer_method' => 'doSelect',
'text_method' => '__toString',
'control_name' => 'user_customer_permissions_'.$user_customer->getId(),
'multiple' => true
));
?>
默认情况下,将选择值4和5。这并不理想,因为文档将第一个参数列为$object(symfonyapi)。因此,我认为这可以被视为一种解决办法。理想情况下,当multiple标志设置为true时,函数将接受$object参数的对象数组。这将与其他助手函数一致