• Jeder User im Forum verpflichtet sich zur Akzeptanz und zur Einhaltung dieser Regeln:
    1. Umgangston
      Ein angemessener höflicher Umgangston, ohne Beleidigungen, Beschimpfungen und aggressive Postings ist für jedes Mitglied Pflicht.
    2. Beiträge
      Jedes Mitglied sollte sich bemühen nur sinnvolle Beiträge zum Thema zu posten. Dabei ist unbedingt vorher zu prüfen, ob das Thema vorher schon einmal diskutiert wurde und daher fortgesetzt werden kann
      • Suchfunktion benutzen!
      • offizielle Doku lesen!
    3. Haftung
      Jeder Beitragsersteller übernimmt die alleinige Verantwortung seiner Inhalte.
    4. Werbung
      Wir erlauben keine Beiträge, Signaturen, Private Nachrichten oder eMails an Benutzer, die Werbung enthalten. Ausgenommen
      sind Stellengesuche /-angebote, welche ausschließlich im Forum "Stellengesuche" veröffentlicht werden dürfen.
    5. Verstöße
      Regelwidrige Beiträge sollten dem Team gemeldet werden. Nach deren Überprüfung werden wir schnellstmöglich
      entsprechend handeln.
    6. Authorität
      Den Anweisungen der Team-Mitglieder (Administratoren und Moderatoren) sind in diesem Forum Folge zu leisten.
      Bei Fragen oder Beschwerden bitte an diese wenden.
    Wir möchten Euch darauf aufmerksam machen, dass es bei Verstößen gegen einen oder mehreren der oben genannten
    Punkte dem Team frei steht entsprechend zu handeln. Dies kann z.B. das Löschen eines Beitrags, das Ausschliessen bzw.
    Sperren von Mitgliedern oder aber lediglich eine Verwarnung sein.

    In diesem Zusammenhang sollte erwähnt werden, dass das Forum automatisch die IP-Adresse jedes Beitrag-Erstellers
    speichert. Bei schweren Vergehen, behalten wir es uns vor, die IP-Adresse zur Strafverfolgung weiterzugeben.
  • Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Doctrine - Relationen - Allgemeines Verständnis

sodiummd

New member
Hi,

ich steh mal komplett auf dem Schlauch un bräuchte einfach mal ne Erklärung für Dumme.

Ich habe eine Tabelle A (bspw. Benutzer) und eine Tabelle B (zusätzliche Attribute)

Tabelle A: user_id, username, xxx
Tabelle B: value_id, attribute_id, entity_id (enthält die User ID), value

Wie müsste nun die Relation aussehen, wenn die User Entität zusätzlich noch alle Attribute haben soll?! Ich kriege es einfach nicht hin und bin für jede Anregung echt dankbar!
Als einfach SQL Anweisung krieg ich es problemlos hin, aber Doctrine bereitet mir Kopfschmerzen... :(
 

[-UFO-]Melkor

New member
Hast du dir mal die dazugehörige Dokumentation angeschaut?

Du brauchst eine One-to-Many Assoziation. Die Attribute der Tabelle in das User-Object direkt einzubauen ist schlicht nicht möglich (aber auch nicht notwendig).
Vielleicht beschreibst du dein Problem ein wenig genauer …
 

sodiummd

New member
Danke, schon alles gefunden... aber nun mit einem anderen Problem konfrontiert.

Ich habe eine neue Entität erstellt und mit Daten gefüllt. Lasse ich mir nun das neue Objekt ausgeben, ist zu erkennen, dass alles was "gefüllt" sein soll auch gefüllt ist.

Wenn ich nun die Daten in die DB schreiben lassen möchte, erhalte ich die Fehlermeldung, dass 2 Eigenschaften null sind, obwohl diese korrekt gefüllt wurden. Nun habe ich ein wenig rum probiert und raus gefunden, dass es sich dabei um genau die 2 Eigenschaften handelt, welche in einer weiteren Abfrage verwendet werden. Entferne ich diese zusätzliche Abfrage, sind die Daten korrekt vorhanden. Anbei der Code Aussug:

PHP:
   /**
    * @ORM\Id
    * @ORM\Column(type="integer");
    * @ORM\GeneratedValue(strategy="AUTO")
    */   
   protected $value_id;

   /**    
    * @ORM\Column(type="integer", name="entity_id")     
    */       
   protected $entity_id;

   /**    
    *  @ORM\ManyToOne(targetEntity="User\Model\Entity\User", inversedBy="userAttributes")    
    *  @ORM\JoinColumn(name="entity_id", referencedColumnName="user_id")    
    */   
   protected $user;
So erhalte ich die folgende Fehlermeldung:
Code:
[COLOR=#000000][FONT=Consolas]An exception occurred while executing 'INSERT INTO user_attributes (entity_type_id, attribute_id, entity_id, value) VALUES (?, ?, ?, ?)' with params {"1":1,"2":3,"3":null,"4":"Musterstr. 5"}:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'entity_id' cannot be null[/FONT][/COLOR]
Wenn ich nun (theoretisch gesehen) die Verbindung zur User Entität entfernen würde, kann es problemlos in der DB gespeichert werden. Hat jemand ne Ahnung, woran das liegen könnte?!
 

yersinia

New member
Ich glaube, dass du die $entity_id nicht extra in deiner Entity definieren musst. Normal reicht

PHP:
  /**
    * @ORM\Id
    * @ORM\Column(type="integer");
    * @ORM\GeneratedValue(strategy="AUTO")
    */   
   protected $value_id;


   /**    
    *  @ORM\ManyToOne(targetEntity="User\Model\Entity\User", inversedBy="userAttributes")    
    *  @ORM\JoinColumn(name="entity_id", referencedColumnName="user_id")    
    */   
   protected $user;
Dann sollte doctrine das schema und damit auch die JoinColumn entity_id für dich anlegen.
Bin mir jetzt aber nicht ganz sicher, ob dies zu diesem Fehler führt. Vielleicht magst deine beiden Entitys posten und den Testcode im Controller?

Lg
 

sodiummd

New member
Danke, konnte es soweit doch selber lösen.. stehe aber nun vor nem 3. Problem.

Ich erhalte die folgende Fehlermeldung
Code:
[COLOR=#000000][FONT=Consolas]The class 'Doctrine\ORM\PersistentCollection' was not found in the chain configured namespaces Core\Model\Entity, Accounts\Model\Entity, Application\Model\Entity, User\Model\Entity[/FONT][/COLOR]

Nur finde ich im Netz nichts zu dieser Meldung... jemand ne Idee
 

[-UFO-]Melkor

New member
Wenn du eine Lösung hast, teil sie doch mit uns, dann können andere sie weiterverwenden ;-)

Die Fehlermeldung klingt erst einmal nach einem Autoloader-Problem … allerdings bräuchten wir wohl ein paar mehr Informationen
 

yersinia

New member
Hi,

zur Fehlermeldung kann ich nicht viel sagen, aber wie sieht denn eines deiner Entities aus? (ganze Klasse mit use Statements).

Lg
 
Oben