0

テーブル 'disability_types' からすべてのタイプ (id、name) をフェッチします。この後、結果の配列の前に、id=-1 の新しいレコード「all」を追加する必要があります。次に、それらのレコードを使用して、複数の選択肢の選択を埋めます。そうです:

$disabilityType = $this->getDoctrine()->getRepository("AldenBonBundle:DisabilityType")->findAll();

そして私は試しました:

$item = new \Alden\BonBundle\Entity\DisabilityType();
$item->setAsAll();//set name and id
array_unshift($disabilityType, $item);

しかし、これは私にエラーを与えますEntities passed to the choice field must be managed。いくつかの研究の後、私は試しました

$disabilityType = $this->getDoctrine()->getEntityManager()->merge($item);

しかし、これはエラーを生成しますEntity was not found

新しい $item を DisabilityType にマージするにはどうすればよいですか?

4

1 に答える 1

0

配列のハイドレーションを使用する必要があるため、配列を操作します。

$query = $entityManager
             ->createQuery('SELECT d FROM AldenBonBundle\DisabilityType d');
$disabilityTypes = $query->getResult(Query::HYDRATE_ARRAY);

これで、$disabilityTypes変数は配列になり、できるarray_unshiftようになりました。

于 2012-10-04T00:05:32.330 に答える