ページに関する基本的な編集可能な情報を持つエンティティSettingsを作成したいと考えています。Settings.phpこのソースを使用してエンティティを作成しました:
<?php
namespace Acme\SettingsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="settings")
*/
class Settings
{
/**
* @ORM\Column(type="string", length=100)
*/
protected $page_name;
/**
* @ORM\Column(type="string", length=100)
*/
protected $page_description;
/**
* @ORM\Column(type="string", length=100)
*/
protected $page_email;
}
そして、新しいデータを作成するのではなく、既存のデータを上書きするだけであることをコントローラーで伝える方法がわかりません。これは私のコントローラーですAdminController.php
public function indexAction(Request $request)
{
if (false === $this->get('security.context')->isGranted('ROLE_ADMIN')) {
throw new AccessDeniedException();
}
$settings = new Settings();
$form = $this->createForm('settings', $settings);
$form->handleRequest($request);
if($form->isValid())
{
$em = $this->getDoctrine()->getManager();
$em->persist($settings);
try {
$em->flush();
} catch (\PDOException $e) {
// sth
}
$this->get('session')->getFlashBag()->add(
'success',
'Settings was successfuly changed'
);
}
return $this->render('AcmeSettingsBundle:Admin:index.html.twig', array('form' => $form));
}
テストはしませんでしたが、新しいデータで新しい Settings オブジェクトが作成されると思います。何か助けはありますか?