Wenn ich den folgenden Befehl ausführen: php app/console doctrine:schema:update --force --dump-sql
Lehre: schema: update Erstellung nicht OneToOne Beziehungen
Es Diese Nachricht zurückgibt: Nothing to update - your database is already in sync with the current entity metadata
.
Ich habe zwei Entitäten, User und UserProfile.
User.php
/**
* @ORM\Table(name="users", options={"charset":"utf8mb4", "collate":"utf8mb4_unicode_ci"})
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
*/
class User implements UserInterface
{
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\OneToOne(targetEntity="UserProfile", inversedBy="user_id")
*/
private $id;
...
UserProfile.php
/**
* @ORM\Table(name="users_profiles", options={"charset":"utf8mb4", "collate":"utf8mb4_unicode_ci"})
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserProfileRepository")
*/
class UserProfile
{
/**
* @ORM\Id
* @ORM\Column(name="user_id", type="integer")
* @ORM\OneToOne(targetEntity="User", mappedBy="id")
*/
private $userId;
...
Ich habe bereits versucht, den Cache zu löschen.
UPDATE # 1
User.php
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\OneToOne(targetEntity="UserProfile", mappedBy="userId")
*/
private $id;
UserProfile.php
/**
* @ORM\Id
* @ORM\Column(name="user_id", type="integer")
* @ORM\OneToOne(targetEntity="User", inversedBy="id")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $userId;
Während ich verstehe, warum es notwendig und empfohlen ist, stört es mich, dass ich 2 zusätzliche Eigenschaften und 1 zusätzliches Feld brauche. Es wird in beiden Tabellen genau dieselben Zeilen geben, und die user_profile_id wird die selbe wie die user_id sein (es sei denn, etwas geht schrecklich schief). Wie auch immer, deine Antwort hat mein Problem gelöst, danke! – RektByAyyLMAO
Sie können damit nur mit der einen Spalte tun, es ist nur eine Menge zusätzliche Arbeit, die für mich einfach ist, die zusätzliche Eigenschaft hinzuzufügen. Aber ich fühle deine Frustration. Froh, dass die Antwort hilfreich war. – Chausser
Bei dieser letzten Option haben Sie für die Eigenschaft '$ profile' 'mappedBy =" userId "' geschrieben, aber es gibt keine 'userId'. – RektByAyyLMAO