Ответ 1
РЕШЕННЫЙ!
Я создал новый элемент формы:
ObjectMultiCheckbox:
namespace Application\Form\Element;
use Zend\Form\Element\MultiCheckbox;
use Zend\Stdlib\ArrayUtils;
class ObjectMultiCheckbox extends MultiCheckbox
{
public function setValue($value)
{
if ($value instanceof \Traversable)
{
$value = ArrayUtils::iteratorToArray($value);
foreach ($value as $key => $row)
{
$values[] = $row->getId();
}
return parent::setValue($values);
}
elseif ($value == null)
{
return parent::setValue(array());
}
elseif (!is_array($value))
{
return parent::setValue((array)$value);
}
}
}
Это не очень красиво, но обрабатывает объект в форме как DoctrineModule\Form\Element\ObjectMultiCheckbox
.
Моя сущность, которая использует этот код, всегда имеет идентификатор 'id', поэтому я могу использовать статический код так: $row->getId();
Это уродливо, но оно работает!