페이지에서 볼 수있는 엔티티 필드가 여러 개 있습니다. 각 필드에 대해 한 번에 하나씩 아약스를 통해 편집 할 수 있습니다. 이 작업을 수행하기 위해 모든 필드에 대해 고유 한 컨트롤러를 구축하는 아이디어가 떠오르지 만 제대로 작동하지 않을 수 있으며 내가 시도하려는 작업에 적합한 솔루션인지 여부를 알 수 없습니다. 내 페이지 쇼 필드 : 내 컨트롤러에서symfony2가 필드 엔티티를 동적으로 만듭니다.
<div>
<form class="ajax" action="{{ path('ajax_setSocial', { 'id': entity.id }) }}" method="post" {{ form_enctype(form) }}>
<div class="editor">
{{ form_errors(form) }}
<div class="editLabel pls lti">{{ form_label(form.ragSocial) }}</div>
<div class="editField">
<div class="ptm">
{{ form_widget(form.ragSocial) }} {{ form_errors(form.ragSocial) }}
</div>
{{ form_widget(form._token) }}
<div class="mtm">
<button class="btn btn-primary disabled save" type="submit" disabled>Save</button>
<button class="btn ann">Cancel</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="ajax" action="{{ path('ajax_setSocial', { 'id': entity.id }) }}" method="post" {{ form_enctype(form) }}>
<div class="editor">
{{ form_errors(form) }}
<div class="editLabel pls lti">{{ form_label(form.pIva) }}</div>
<div class="editField">
<div class="ptm">
{{ form_widget(form.pIva) }} {{ form_errors(form.pIva) }}
</div>
{{ form_widget(form._token) }}
<div class="mtm">
<button class="btn btn-primary disabled save" type="submit" disabled>Save</button>
<button class="btn ann">Cancel</button>
</div>
</div>
</div>
</form>
</div>
:
public function setSocialAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('MyBusinessBundle:Anagrafica')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Anagrafic entity.');
}
$field = $request->get('field');
$class = $field.'Type()';
$form = $this->createForm(new $class, $entity);
$form->bind($request);
if ($form->isValid()) {
$em->persist($entity);
$em->flush();
$response = new Response();
$output = array('success' => true);
$response->headers->set('Content-Type', 'application/json');
$response->setContent(json_encode($output));
return $response;
}
$ 클래스 = $ field.'Type();
$ form = $ this-> createForm (새 $ class, $ entity); 이러한 코드 라인 나는 양식 필드를 생성하지만 문자열로 변환되고 있으며, 내가 오류가 있기 때문에 작동하지 않습니다 동적 클래스 만들려고 :
Fatal error: Class 'ragSocialType()' not found
을하지만 클래스입니다! 또한 최상위 파일에 호출됩니다 .. 내가 설명하기를 바랍니다, 나는 더 나은 방법을 따라 어떤 조언을 받아들입니다!
ragSocialType을 게시하시기 바랍니다. – Lighthart
부적절합니다! 변수에 이름을 짓지 않고 ragSocialType()을 직접 작성하면 올바르게 작동합니다. – Lughino