Automatisch ein Formular erstellen, mit entity (eins-zu-eins-Beziehung)
Frage ich mich, ob es möglich ist ein Formular erstellen, um mittels einer Entität, um alle Felder in einer eins-zu-eins-Beziehung. Um es klarzustellen:
Ich habe eine User.php
Person (mit all der offensichtlichen Felder, name, Vorname, genre, etc) und ein Address.php
Einheit. Was ich will, ist zu bauen, die ganze form, ohne Zusatz, indem man die Eigenschaften der Entität Adresse, und speichern Sie es mit der richtigen Beziehung in der Datenbank.
Dies ist, was ich versucht habe (ich habe trimed den code ein wenig), aber ist offensichtlich nicht der richtige Weg:
Entität " Benutzer:
class User implements UserInterface {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100, nullable=TRUE)
*/
protected $firstName;
/**
* @ORM\Column(type="string", length=200)
* @Assert\NotBlank()
*/
protected $lastNames;
/**
* @ORM\OneToOne(targetEntity="Capsa\Bundle\ClubCommonBundle\Entity\Address")
*/
protected $address;
Adresse Klasse
class Address {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100, unique=TRUE)
* @Assert\NotBlank()
*/
protected $streetName;
/**
* @ORM\Column(type="string", length=50)
*/
protected $streetNumber;
Form builder:
public function buildForm(FormBuilder $builder, array $options) {
$builder->add('login', 'text')
->add('password', 'password')
->add('firstName', 'text', array("required" => FALSE))
->add('lastNames', 'text')
->add('address', 'entity', array(
'class' => 'CapsaClubCommonBundle:Address',
'property'=>'streetName'
));
}
Wird das Feld streetName der Tabelle und stellt Sie in einer Liste.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, Sammlung form geben anstelle des Entity-field-type – siehe dieses tutorial.
->add('address', new AddressType());
natürlich defyining AddressType->add('address', AddressType::class)