이 주제에 관한 문서가 다소 얇 으면 막 다른 골목에 처하게됩니다.
두 가지 모델이 있습니다 : Job 및 JobAttribute. 나는 다음과 같은 FormClass이 지금
class Job {
/**
* @ORM\OneToMany(targetEntity="JobAttribute", mappedBy="job_attributes")
*
* @var ArrayCollection
*/
private $attributes;
}
class JobAttribute {
/**
* @ORM\Column(name="type", type="string", length=50)
*
* @var string
*/
private $type;
/**
* @ORM\ManyToOne(targetEntity="Job", inversedBy="jobs")
*/
private $job;
: 작업이 많은 인 JobAttributes을 가지고 있으며, JobAttribute와 하나의 작업이
class JobType extends AbstractType {
public function buildForm(FormBuilder $f, array $options) {
$f->add('name', 'text');
$f->add('attributes', 'collection', array('type' => new JobAttributeType()));
}
public function getName() {
return 'job';
}
}
class JobAttributeType extends AbstractType {
public function buildForm(FormBuilder $f, array $options) {
$attribute = $options['data'];
$f->add('value', $attribute->getType());
}
public function getDefaultOptions(array $options) {
return array('data_class' => 'JWF\WorkflowBundle\Entity\JobAttribute');
}
public function getName() {
return 'job_attribute';
}
}
예, 참, JobAttribute와의 type 속성은 양식 필드 유형을 포함을, 예. 본문.
그래서 내 컨트롤러의 JobType에서 FormBuilder를 호출하면 $ options [ 'data']에 JobType 내의 Job-Object가 올바르게 채워집니다. 그러나 중첩 된 JobAttributeType의 $ options [ 'data']는 JobAttribute 객체를 가리 키지 않습니다. 그것은 NULL입니다.
무엇이 문제입니까? 협회는 어디에서 분실 되었습니까? 왜 $ options [ 'data'] = 중첩 된 형태로 NULL입니까? 동적 필드 유형 (Doctrine 외)을 중첩 된 양식으로 가져 오기위한 해결 방법이 있습니까?
미리 감사드립니다.
안녕하세요. 양식 데이터가 필요한 'DataTransformer'는 무엇입니까? 'PRE_SET_DATA' 이벤트에서 아무것도 할 수없고,'options [ 'data']'가 빌드 중에 값이 없다면, 어떻게 변압기를 부착 할 수 있습니까? 감사. – DonCallisto