2010-02-25 5 views
0

J'utilise Symfony 1.3.2 avec Propel ORM sous Ubuntu 9.10.Un exemple d'intégration de formulaires dans Symfony

J'ai une table de profil d'utilisateur, qui a beaucoup d'autres tableaux qui y sont liées (c.-à-user_profile.id est un FK dans beaucoup d'autres tables

Mon schéma db ressemble à ceci:.

user_profile: 
    _attributes: { phpName: UserProfile } 
    id: ~ 
    guard_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true } 
    address: { type: longvarchar, required: true } 

vehicle_type: 
    _attributes: { phpName: VehicleType } 
    id: ~ 
    name: { type: varchar(32), required: true } 


user_vehicle: 
    _attributes: { phpName: UserVehicle } 
    id: ~ 
    user_id: { type: integer, foreignTable: user_profile, foreignReference: id, required: true } 
    vehicle_type: { type: integer, foreignTable: vehicle_type, foreignReference: id, required: true } 
    license_plate:  { type: varchar(16), required: true } 


user_child: 
    _attributes: { phpName: UserChild } 
    id: ~ 
    user_id: { type: integer, foreignTable: user_profile, foreignReference: id, required: true } 
    gender: { type: boolean, required: true } 
    name:  { type: varchar(32), required: true } 

Je souhaite intégrer les autres objets liés à l'objet de profil utilisateur, dans le formulaire de profil utilisateur, de sorte que lorsque j'effectue CRUD sur un formulaire de profil utilisateur, les objets associés (par exemple UserVehicle, UserJob sont également CRUD dans le même l'heure en tant qu'objet de profil utilisateur)

J'ai besoin d'un extrait simple qui montrera comment:

  1. Incorporez les divers objets connexes (c.-à-d. UserVehicle, UserChild) sous la forme UserProfile
  2. Créer/Mettre à jour/Supprimer les différents objets connexes que l'opération est en cours (s'il vous plaît noter, un utilisateur peut avoir plus de véhicules ou les enfants de 0-N qui leur sont assignés

Répondre

3

Avez-vous lu le documentation:..

// lib/form/doctrine/ProductForm.class.php 
public function configure() 
{ 
    $subForm = new sfForm(); 
    for ($i = 0; $i < 2; $i++) 
    { 
    $productPhoto = new ProductPhoto(); 
    $productPhoto->Product = $this->getObject(); 

    $form = new ProductPhotoForm($productPhoto); 

    $subForm->embedForm($i, $form); 
    } 
    $this->embedForm('newPhotos', $subForm); 
} 

pour la partie création/suppression/mise à jour, this article pourrait donner une aide

0

Je ne trouve l'approche officielle à mes besoins, je développé une approche complètement différente. Dans la société où je travaillais, nous avons utilisé la production this new approach, la trouvant un peu plus élastique et simple. Le concept clé est "n'utilisez pas la classe Form de Symfony et vous découvrirez que l'intégration de formulaires peut être une tâche très simple" J'espère que cela vous aidera à intégrer des formulaires.

Questions connexes