在我的 Symfony2 项目中,我尝试动态生成在我的表单类型中使用的实体,绕过使用查询构建器等。
对于实体选择属性,我提供了要使用的实体数组。在页面加载时,一切似乎都很好,并且显示了正确的内容。但是在提交表单时我得到
isset 中的非法偏移类型或 EntityChoiceList.php 第 273 行中的空
at ErrorHandler ->handle ('2', 'Illegal offset type in isset or empty',
'..../Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php', '273', array('key' => object(myEntity))) in ..../Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php at line 273
.....
return isset($entities[$key]) ? $entities[$key] : null;
.....
让我难过的是如果我添加 var_dump(isset($this->entities[$key]));exit; 在这一行上方,我返回了“bool(true)”,这对我来说意味着密钥确实存在。
作为背景,我试图扩展 EntityType,以便在我的项目中轻松并添加:
public function getDefaultOptions(array $options)
{
$defaultOptions = array(
'em' => null,
'class' => 'Acme\TestBundle\Entity\myEntity',
'property' => null,
'query_builder' => null,
'choices' => $this->myEntityArray,
);
$options = array_replace($defaultOptions, $options);
$defaults = parent::getDefaultOptions($options);
return $defaults;
}
有没有人知道为什么我会收到这个错误,或者我的问题是否都错了,试图将一组实体传递给选择?