2016-07-29 37 views
1

Abfragewarnnachricht von Symfony Profiler:Die Abbildungen und sind inkonsistent?

Klient Entity

Die Zuordnungen AdminBundle \ Entity \ Klient # Kontakte und AdminBundle \ Entity \ KlientContact # fkKlient sind miteinander inkonsistent.

KlientContact Entity

Der Verband AdminBundle \ Entity \ KlientContact # fkKlient bezieht sich auf die inverse Seitenfeld AdminBundle \ Entity \ nip # Klient die nicht als Verband definiert. Die Zuordnung AdminBundle \ Entity \ KlientContact # fkKlient bezieht sich auf die inverse Seite Feld AdminBundle \ Entity \ Klient # nip, die nicht vorhanden ist.

Was habe ich falsch gemacht? Ich gehe davon aus, dass es etwas ist, dass ich auf Klient # Nip bin fehlt (die als Id-Feld zugeordnet wird)

[Kunde von Entity]

<?php 

namespace AdminBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use AdminBundle\Entity\KlientContact; 
use Doctrine\Common\Collections\ArrayCollection; 

/** 
* Klient 
* 
* @ORM\Table(name="klient") 
* @ORM\Entity(repositoryClass="AdminBundle\Repository\KlientRepository") 
* @ORM\HasLifecycleCallbacks 
*/ 
class Klient 
{ 
    public function __construct() 
    { 
     $this->contacts = new ArrayCollection(); 
    } 

    public function __toString() { 
     return "NIP: ".$this->nip .", NAZWA: ". $this->name .", TEL: ". $this->tel; 
    } 

    /** 
    * @var string 
    * @ORM\Id 
    * @ORM\Column(name="nip", type="string", length=255) 
    * 
    */ 
    private $nip; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="regon", type="string", length=255) 
    */ 
    private $regon; 

    /** 
    * @var \DateTime 
    * @ORM\Column(name="inserted_at", type="datetime", nullable=true) 
    */ 
    private $insertedAt; 

    /** 
    * @var \DateTime 
    * @ORM\Column(name="last_edited_at", type="datetime", nullable=true) 
    */ 
    private $lastEditedAt;  

    /** 
    * @var string 
    * 
    * @ORM\Column(name="krs", type="string", length=255) 
    */ 
    private $krs; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="address", type="string", length=255) 
    */ 
    private $address; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    private $name; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="tel", type="string", length=255, nullable=true) 
    */ 
    private $tel; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="email", type="string", length=255, nullable=true) 
    */ 
    private $email; 

    /** 
    * @var type 
    * 
    * @ORM\OneToMany(targetEntity="KlientContact", mappedBy="fkKlient") 
    */ 
    private $contacts; // optional properyty holds an array of contact objects - this is not a fild in database 


    /** 
    * Set nip 
    * 
    * @param string $nip 
    * 
    * @return Klient 
    */ 
    public function setNip($nip) 
    { 
     $this->nip = $nip; 

     return $this; 
    } 

    /** 
    * Get nip 
    * 
    * @return string 
    */ 
    public function getNip() 
    { 
     return $this->nip; 
    } 

    /** 
    * Set regon 
    * 
    * @param string $regon 
    * 
    * @return Klient 
    */ 
    public function setRegon($regon) 
    { 
     $this->regon = $regon; 

     return $this; 
    } 

    /** 
    * Get regon 
    * 
    * @return string 
    */ 
    public function getRegon() 
    { 
     return $this->regon; 
    } 

    /** 
    * Set krs 
    * 
    * @param string $krs 
    * 
    * @return Klient 
    */ 
    public function setKrs($krs) 
    { 
     $this->krs = $krs; 

     return $this; 
    } 

    /** 
    * Get krs 
    * 
    * @return string 
    */ 
    public function getKrs() 
    { 
     return $this->krs; 
    } 

    /** 
    * Set address 
    * 
    * @param string $address 
    * 
    * @return Klient 
    */ 
    public function setAddress($address) 
    { 
     $this->address = $address; 

     return $this; 
    } 

    /** 
    * Get address 
    * 
    * @return string 
    */ 
    public function getAddress() 
    { 
     return $this->address; 
    } 

    /** 
    * Set name 
    * 
    * @param string $name 
    * 
    * @return Klient 
    */ 
    public function setName($name) 
    { 
     $this->name = $name; 

     return $this; 
    } 

    /** 
    * Get name 
    * 
    * @return string 
    */ 
    public function getName() 
    { 
     return $this->name; 
    } 

    /** 
    * Set tel 
    * 
    * @param string $tel 
    * 
    * @return Klient 
    */ 
    public function setTel($tel) 
    { 
     $this->tel = $tel; 

     return $this; 
    } 

    /** 
    * Get tel 
    * 
    * @return string 
    */ 
    public function getTel() 
    { 
     return $this->tel; 
    } 

    /** 
    * Set email 
    * 
    * @param string $email 
    * 
    * @return Klient 
    */ 
    public function setEmail($email) 
    { 
     $this->email = $email; 

     return $this; 
    } 

    /** 
    * Get email 
    * 
    * @return string 
    */ 
    public function getEmail() 
    { 
     return $this->email; 
    } 

    /** 
    * Add contact 
    * 
    * @param \AdminBundle\Entity\KlientContact $contact 
    * 
    * @return Klient 
    */ 
    public function addContact(\AdminBundle\Entity\KlientContact $contact) 
    { 
     $this->contacts[] = $contact; 

     return $this; 
    } 

    /** 
    * Remove contact 
    * 
    * @param \AdminBundle\Entity\KlientContact $contact 
    */ 
    public function removeContact(\AdminBundle\Entity\KlientContact $contact) 
    { 
     $this->contacts->removeElement($contact); 
    } 

    /** 
    * Get contacts 
    * 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getContacts() 
    { 
     return $this->contacts; 
    } 

    /** 
    * Set insertedAt 
    * 
    * @param \DateTime $insertedAt 
    * 
    * @return Klient 
    */ 
    public function setInsertedAt(\DateTime $insertedAt) 
    { 
     $this->insertedAt = $insertedAt; 

     return $this; 
    } 

    /** 
    * Get insertedAt 
    * 
    * @return \DateTime 
    */ 
    public function getInsertedAt() 
    { 
     return $this->insertedAt; 
    } 

    /** 
    * Set lastEditedAt 
    * 
    * @param \DateTime $lastEditedAt 
    * 
    * @return Klient 
    */ 
    public function setLastEditedAt(\DateTime $lastEditedAt) 
    { 
     $this->lastEditedAt = $lastEditedAt; 

     return $this; 
    } 

    /** 
    * Get lastEditedAt 
    * 
    * @return \DateTime 
    */ 
    public function getLastEditedAt() 
    { 
     return $this->lastEditedAt; 
    } 

    /** 
    * 
    * @ORM\PrePersist 
    * @ORM\PreUpdate 
    */ 
    public function updatedTimestamps() 
    { 
     $this->setLastEditedAt(new \DateTime('now')); 

     if ($this->getInsertedAt() == null) { 
      $this->setInsertedAt(new \DateTime('now')); 
     } 
    } 
} 

[KlientContact Entity]

<?php 

namespace AdminBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use AdminBundle\Entity\Klient; 
use Symfony\Component\Security\Core\User\UserInterface; 

/** 
* KlientContact 
* 
* @ORM\Table(name="klient_contact") 
* @ORM\Entity(repositoryClass="AdminBundle\Repository\KlientContactRepository") 
* @ORM\HasLifecycleCallbacks 
*/ 
class KlientContact implements UserInterface 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="inserted_at", type="datetime", nullable=true) 
    */ 
    private $insertedAt; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="last_edited_at", type="datetime", nullable=true) 
    */ 
    private $lastEditedAt;  

    /** 
    * @ORM\ManyToOne(targetEntity="Klient", inversedBy="nip") 
    * @ORM\JoinColumn(name="fk_klient", referencedColumnName="nip") 
    */ 
    private $fkKlient; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    private $name; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="surname", type="string", length=255) 
    */ 
    private $surname; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="email", type="string", length=255) 
    */ 
    private $email; 



    /** 
    * @var string 
    * 
    * @ORM\Column(name="phone", type="string", length=255) 
    */ 
    private $phone; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="login", type="string", length=255, unique=true) 
    */ 
    private $login; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="password", type="text") 
    */ 
    private $password; 


    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set name 
    * 
    * @param string $name 
    * 
    * @return KlientContact 
    */ 
    public function setName($name) 
    { 
     $this->name = $name; 

     return $this; 
    } 

    /** 
    * Get name 
    * 
    * @return string 
    */ 
    public function getName() 
    { 
     return $this->name; 
    } 

    /** 
    * Set surname 
    * 
    * @param string $surname 
    * 
    * @return KlientContact 
    */ 
    public function setSurname($surname) 
    { 
     $this->surname = $surname; 

     return $this; 
    } 

    /** 
    * Get surname 
    * 
    * @return string 
    */ 
    public function getSurname() 
    { 
     return $this->surname; 
    } 

    /** 
    * Set email 
    * 
    * @param string $email 
    * 
    * @return KlientContact 
    */ 
    public function setEmail($email) 
    { 
     $this->email = $email; 

     return $this; 
    } 

    /** 
    * Get email 
    * 
    * @return string 
    */ 
    public function getEmail() 
    { 
     return $this->email; 
    } 

    /** 
    * Set phone 
    * 
    * @param string $phone 
    * 
    * @return KlientContact 
    */ 
    public function setPhone($phone) 
    { 
     $this->phone = $phone; 

     return $this; 
    } 

    /** 
    * Get phone 
    * 
    * @return string 
    */ 
    public function getPhone() 
    { 
     return $this->phone; 
    } 

    /** 
    * Set login 
    * 
    * @param string $login 
    * 
    * @return KlientContact 
    */ 
    public function setLogin($login) 
    { 
     $this->login = $login; 

     return $this; 
    } 

    /** 
    * Get login 
    * 
    * @return string 
    */ 
    public function getLogin() 
    { 
     return $this->login; 
    } 

    /** 
    * Set password 
    * 
    * @param string $password 
    * 
    * @return KlientContact 
    */ 
    public function setPassword($password) 
    { 
     $hash = password_hash($password, PASSWORD_BCRYPT , ['cost' => 5]); 
     $this->password = $hash; 

     return $this; 
    } 

    /** 
    * Get password 
    * 
    * @return string 
    */ 
    public function getPassword() 
    { 
     return $this->password; 
    } 

    /** 
    * Set fkKlient 
    * 
    * @param \AdminBundle\Entity\Klient $fkKlient 
    * 
    * @return KlientContact 
    */ 
    public function setFkKlient(\AdminBundle\Entity\Klient $fkKlient = null) 
    { 
     $this->fkKlient = $fkKlient; 

     return $this; 
    } 

    /** 
    * Get fkKlient 
    * 
    * @return \AdminBundle\Entity\Klient 
    */ 
    public function getFkKlient() 
    { 
     return $this->fkKlient; 
    } 

    public function eraseCredentials() { 

    } 

    public function getRoles() { 
     return ['ROLE_USER']; 
    } 

    public function getSalt() { 
     return null; 
    } 

    public function getUsername() { 

    } 


    /** 
    * Set insertedAt 
    * 
    * @param \DateTime $insertedAt 
    * 
    * @return KlientContact 
    */ 
    public function setInsertedAt(\DateTime $insertedAt) 
    { 
     $this->insertedAt = $insertedAt; 

     return $this; 
    } 

    /** 
    * Get insertedAt 
    * 
    * @return \DateTime 
    */ 
    public function getInsertedAt() 
    { 
     return $this->insertedAt; 
    } 

    /** 
    * Set lastEditedAt 
    * 
    * @param \DateTime $lastEditedAt 
    * 
    * @return KlientContact 
    */ 
    public function setLastEditedAt(\DateTime $lastEditedAt) 
    { 
     $this->lastEditedAt = $lastEditedAt; 

     return $this; 
    } 

    /** 
    * Get lastEditedAt 
    * 
    * @return \DateTime 
    */ 
    public function getLastEditedAt() 
    { 
     return $this->lastEditedAt; 
    } 

    /** 
    * 
    * @ORM\PrePersist 
    * @ORM\PreUpdate 
    */ 
    public function updatedTimestamps() 
    { 
     $this->setLastEditedAt(new \DateTime('now')); 

     if ($this->getInsertedAt() == null) { 
      $this->setInsertedAt(new \DateTime('now')); 
     } 
    } 
} 

Antwort

2

Die umgekehrte Seite ist falsch. Sollte sein:

[KlientContact Entity]

/** 
* @ORM\ManyToOne(targetEntity="Klient", inversedBy="contacts") 
* @ORM\JoinColumn(name="fk_klient", referencedColumnName="nip") 
*/ 
private $fkKlient;