Symfony2 プロジェクト内で、クエリ ビルダーなどの使用をバイパスして、フォーム タイプ内で使用されるエンティティを動的に生成しようとしました。
エンティティの選択プロパティには、使用するエンティティの配列を指定しています。ページの読み込み時にすべて問題なく表示され、正しいコンテンツが表示されます。ただし、フォームの送信時に取得します
EntityChoiceList.php 行 273 の isset または空のオフセット タイプが不正です
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;
}
なぜこのエラーが発生するのか、またはエンティティの配列を選択肢に渡そうとすることで、私の問題についてすべて間違っているのでしょうか?