Symfony2에서 내 개체 중 하나에 대해 CRUD가 있습니다. I가 외부로부터 설정 될 원하기 때문에 각 때문에, I는 newAction() 함수에 $ 번호 입력 매개 변수를 추가 이전 코드에서Symfony2 - 외부에서 하나의 양식 매개 변수를 설정하여 사용자가 수정할 수 없습니다.
public function newAction($id) {
$entity = new Clientes();
// Get the reference to the Login entity using its ID
$em = $this->getDoctrine()->getManager();
$ref_login = $em->getReference('LoginBundle:Login', $id);
// Put the retrieved reference to the entity
$entity->setLogin($ref_login);
$form = $this->createForm(new ClientesType(), $entity);
return $this
->render('MovinivelBundle:Persona/Clientes:new.html.twig',
array('entity' => $entity,
'form' => $form->createView(),));
}
public function createAction(Request $request) {
$entity = new Clientes();
$form = $this->createForm(new ClientesType(), $entity);
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('clientes'));
}
return $this
->render('MovinivelBundle:Persona/Clientes:new.html.twig',
array('entity' => $entity,
'form' => $form->createView(),));
}
: 새로운 항목을 생성하기 위해 I, 두 제어기 기능을 가지고 이 Clientes의 로그인 정보는 추가 정보이며 링크되어야합니다.
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('login')
->add('direccion')
->add('localidad')
->add('provincia')
->add('telefono')
;
}
을 지금까지 작동 다음 ClientesType 양식에서
나는 다음 있습니다. 내 양식에서 login 매개 변수는 $ id 값에 따라 선택됩니다. 하지만 일단 양식을 작성하면 로그인 매개 변수를 수정하여 사용자가 양식에서 수정할 수 없으며 적절한 값으로 newAction ($ id) 함수 만 호출 할 수 있도록해야합니다.FormType에서 -> add ('login') 행을 삭제하면 더 이상 작동하지 않습니다. 그것은 내 마음에 두 가지 옵션이 제공 : 어떻게 든 형태로 '로그인'
- 숨기기,하지만 난 방법을 알고, 또는 $ id 매개 변수를 따라 createAction에
- 통과하지 않지만 그것은 작동되어 유지 $ 요청 하나를 입력 매개 변수로 사용하는 방법을 알아낼 수는 없습니다.
이 문제에 대한 의견이 있으십니까?
폼을 렌더링하기 전에 다음 오류가 발생합니다. 폼의 뷰 데이터는 스칼라, 배열 또는 \ ArrayAccess 인스턴스가 될 것으로 예상되지만 Proxies 클래스 __ CG __ \ Login \ 인스턴스의 인스턴스입니다. LoginBundle \ Entity \ Login. "data_class"옵션을 "Proxies \ __ CG __ \ Login \ LoginBundle \ Entity \ Login"으로 설정하거나 Proxies \ __ CG __ \ Login \ LoginBundle \ Entity \ Login 클래스의 인스턴스를 다음으로 변환하는 뷰 변환기를 추가하여이 오류를 피할 수 있습니다. 스칼라, 배열 또는 \ ArrayAccess의 인스턴스 –
@Vynith 그것은 잘못된 타입이 아니기 때문에가 아니라 Symfony2.1에서 엔티티를 사용한다면'Type' 클래스에'data_class' 옵션을 설정해야하기 때문입니다. 추가 정보 : http://stackoverflow.com/a/10903756/1149495 –
추가 : ('로그인', '숨김', 배열 ('data_class'=> '로그인 \ LoginBundle \ Entity \ Login'))하지만 지금은 양식을 보낸 후 이번에는 다른 오류가 발생합니다 : 경고 : spl_object_hash()는 매개 변수 1이 객체가 될 것으로 기대합니다./Users/luis/www/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork .php line 1358 –