3

プロジェクト Zend Framework 2 と Doctrine 2 ORM を使用しています。私は多対多の関係を維持しようとしています。ここで説明されているドキュメントに従いました(多数)。データを永続化しようとしている$em->persist($form->getData());ときに: エラーが発生しました:

"The class 'Doctrine\ORM\PersistentCollection' was not found in the chain configured namespaces".

助言がありますか ?

より明確にするために、いくつかのコードの下に追加しました:

最初に、多対多の関係について、ドキュメントが言ったようにエンティティに注釈を付けました。

 /**
 * @ORM\ManyToMany(targetEntity="\User\Entity\Client", mappedBy="reportSettings")
 */
private $client;

public function __construct() {
    $this->client = new ArrayCollection();
}

/**
 * @ORM\ManyToMany(targetEntity="\Statistics\Entity\ReportSettings", inversedBy="client")
 * @ORM\JoinTable(name="report_client_settings",
 *      joinColumns={@ORM\JoinColumn(name="client_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="report_setting_id", referencedColumnName="id")})
 */
private $reportSettings;

public function __construct() {
    $this->reportSettings = new ArrayCollection();
}

そしてコントローラーで

$form = new UpdateReportSettingsForm();

    $form->bind($reportSettings);

    $request = new Request();

    if ($request->isPost()) {
        $form->setData($request->getPost());

        if ($form->isValid()) {
         $data = $form->getData();
          $em->persist($data); // here I got the error - The class 'Doctrine\ORM\PersistentCollection' was not found in the chain configured namespaces
          $em->flush();

}

DoctrineModule\Form\Element\ObjectMultiCheckbox の形式でも使用します。シンプルvar_dump($data)- 永続的なコレクションを返します。

4

2 に答える 2

0

フォームが正しく定義されていないため、エラーが表示されます。私がここで設立した多対多の関係を行う正しい方法 - http://laundry.unixslayer.pl/2013/zf2-quest-zendform-many-to-many/

于 2013-12-18T08:29:59.500 に答える