プロジェクト 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)
- 永続的なコレクションを返します。