좋아, 솔직하게. symfony가 핵심 파일을 가지고 결정한 의사 결정 중 일부는 마음에 들지 않으므로 그들을 덮어 쓰려고합니다. FormView 부모가있는 경우 예를 들어 코어 심포니 2 구성 요소 덮어 쓰기
Symfony/Component/Form/Extension/Core/Type/FieldType.php
메신저
렌더링됩니다 이름을 변경하려고 그들이 멋진 문자열 형식화하는 작업을 수행하기 때문에 ...임 그냥 그렇게 $fullName
그것을 만들려고 노력하고 $id
은 모두 $form->getName()
입니다.
public function buildView(FormView $view, FormInterface $form)
{
$name = $form->getName();
if ($view->hasParent()) {
$parentId = $view->getParent()->get('id');
$parentFullName = $view->getParent()->get('full_name');
// Custom Logic
//$id = sprintf('%s_%s', $parentId, $name);
//$fullName = sprintf('%s[%s]', $parentFullName, $name);
$id = $form->getName();
$fullName = $form->getName();
} else {
$id = $name;
$fullName = $name;
}
$types = array();
foreach ($form->getTypes() as $type) {
$types[] = $type->getName();
}
$view
->set('form', $view)
->set('id', $id)
->set('name', $name)
->set('full_name', $fullName)
->set('errors', $form->getErrors())
->set('value', $form->getClientData())
->set('read_only', $form->isReadOnly())
->set('required', $form->isRequired())
->set('max_length', $form->getAttribute('max_length'))
->set('pattern', $form->getAttribute('pattern'))
->set('size', null)
->set('label', $form->getAttribute('label'))
->set('multipart', false)
->set('attr', $form->getAttribute('attr'))
->set('types', $types)
;
}
왜 downvote? – Ascherer