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.

InformationsquelleAutor Manu | 2012-03-01
Schreibe einen Kommentar