Php 默认情况下,使用对象\选择\标记选择多个选项

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

我正在运行Symfony 1.2,并利用对象帮助器在表单外部创建一些内联可编辑字段。因为没有符号或脚本式的快捷方式来为多选框创建内联编辑标记(很像input_in_place_editor_标记或Ajax.InPlaceCollectionEditor),所以我使用object_select_标记并将multiple option设置为true来创建一个选择框,如下所示:

<?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参数的对象数组。这将与其他助手函数一致