엔티티 필드 내에서 선택된 값을 설정하려고합니다. 나는이 주제에 대해 본 적이 많은 논의에 따라, 나는 data
옵션을 설정하려고하지만이 기본적으로 값 중 하나를 선택하지 않습니다 더 좀 것으로 나타났습니다 찾고으로Symfony2 - 엔티티 필드에 대해 선택된 값을 설정하십시오.
class EventType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('place', 'entity', array(
'class' => 'RoyalMovePhotoBundle:Place',
'property' => 'name',
'empty_value' => "Choisissez un club",
'mapped' => false,
'property_path' => false,
'data' => 2
))
->add('begin')
->add('end')
->add('title')
->add('description')
;
}
// ...
}
사람들은 엔티티에 대한 양식 매핑을 비활성화해야했습니다. 즉, 논리적 보인다 그래서
가 도움이 될 수 있다면 ... 성공없이 옵션 'mapped' => false
를 추가하려고 여기 내 컨트롤러 :
class EventController extends Controller
{
// ...
public function addAction()
{
$request = $this->getRequest();
$em = $this->getDoctrine()->getManager();
$event = new Event();
$form = $this->createForm(new EventType(), $event);
$formHandler = new EventHandler($form, $request, $em);
if($formHandler->process()) {
$this->get('session')->getFlashBag()->add('success', "L'évènement a bien été ajouté.");
return $this->redirect($this->generateUrl('photo_event_list'));
}
return $this->render('RoyalMovePhotoBundle:Event:add.html.twig', array(
'form' => $form->createView()
));
}
}
그리고 EventHandler
클래스 :
class EventHandler extends AbstractHandler
{
public function process()
{
$form = $this->form;
$request = $this->request;
if($request->isMethod('POST')) {
$form->bind($request);
if($form->isValid()) {
$this->onSuccess($form->getData());
return true;
}
}
return false;
}
public function onSuccess($entity)
{
$em = $this->em;
$em->persist($entity);
$em->flush();
}
}
나는 지금 막 붙어있어, 아이디어가있는 사람이 있니?
나는 정말로 기억하지 못한다. 그러나 나는 성공 전에 이것을 이미 시도해 보았다고 생각한다. 글쎄, 나는이 솔루션을 지금은 (이 프로젝트에서 더 이상 일하고 있지 않다) 해결할 수 없기 때문에 응답으로 받아 들일 것이다. 더 논리적 인 방법 인 것 같다. – Nesk