私はSymfony2でブログを開発しています。私は教義に2つの実体を持っています:
- 最初のものはArticlesと呼ばれ、ブログの記事(タイトル、テキスト、日付、ユーザー)のリストが含まれています。ここで、ユーザーは投稿の作成者です。
- 2つ目はユーザーであり、実際にはユーザープロバイダーです。名前、メールアドレス
などが含まれます。
ArticleエンティティのCRUDを次のように生成します。
php app/console doctrine:generate:crud
コントローラファイルに次のupdateActionが含まれています。
public function updateAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('BlogBundle:Staticpage')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Staticpage entity.');
}
$deleteForm = $this->createDeleteForm($id);
$editForm = $this->createForm(new EditStaticPageType(), $entity);
$editForm->bind($request);
if ($editForm->isValid()) {
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('static_edit', array('id' => $id)));
}
return $this->render('BlogBundle:StaticsManagement:edit.html.twig', array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
));
}
フォームを開いて新しい記事を作成したり、既存の記事を編集したりすると、ユーザーエンティティのユーザーを含むボックスが表示されます。両方のテーブルがエンティティ内でManyToOneアノテーションでリンクされているため、どちらかを選択できます。ただし、ユーザーを選択したくありません。Articlesテーブルに、すでにログインしているユーザーの名前(両方ともリンクされているため、実際にはID)を書き込み、使用可能なユーザーのリストを削除したいと思います。
すでにセキュリティ環境を設定していて正常に動作しているので、このコードはユーザーがログインしている場合にのみ実行されます。updateActionメソッドを編集する必要があると思いますが、方法がわかりません。