Je crée un crud dans la console
namespace App\Entity; use Doctrine\ORM\Mapping as ORM; /** * Class Location * @package App\Entity * @ORM\Entity() * @ORM\Table("locations") */ class Location { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ protected $id; /** * @ORM\Column(type="datetime") */ protected $created; /** * @ORM\Column(type="datetime") */ protected $updated; /** * @ORM\OneToOne(targetEntity="App\Entity\Person") * @ORM\JoinColumn(name="created_by_id", referencedColumnName="id") */ protected $createdBy; /** * @ORM\OneToOne(targetEntity="App\Entity\Permission") * @ORM\JoinColumn(name="permission_id", referencedColumnName="id") */ protected $permissions; /** * @ORM\Column(name="updated_by_id") * @ORM\OneToOne(targetEntity="App\Entity\Person") */ protected $updatedBy; /** * @ORM\Column(length=255) */ private $name; /** * @ORM\OneToOne(targetEntity="Address") * @ORM\JoinColumn(name="address_id", referencedColumnName="id") */ private $address; /** * @ORM\Column(length=255) */ private $geoSpatial; }
Cela fonctionne très bien. Je vais à /location/
p>
Cliquez sur créer nouveau et j'obtiens cette erreur SQL
Une exception s'est produite lors de l'exécution de 'SELECT e0_.id AS id_0, e0_.created AS created_1, e0_.updated AS updated_2, e0_.updated_by_id AS updated_by_id_3, e0_.type AS type_4, p1_.name AS name_5, p1_.email AS email_6, e0_.created_by_id AS created_by_id_7, e0_.permission_id AS permission_id_8, p1_.relationships_id AS relations_id_9, p1_.locations_id AS locations_id_10 FROM people p1_ ': SQLSTATE [42S022]: Colonne non trouvée dans le champ' e022 ': Colonne inconnue' e022 ': colonne inconnue' dans le champ 'e022' '
C'est comme s'il y avait deux tables là-bas. Veuillez aider.
Voici la classe location
. Il contient personnes
. Créé par est une personne
. Je ne sais pas si j'ai le mappage correct, je suis très nouveau dans Symfony
.
php bin/console make:crud Location
3 Réponses :
bin/console doctrine:schema:update: --force
Attention: n'utilisez pas cette commande dans un environnement de production!
Quelle est cette entité people
? La requête se trouve sur cette table, pas sur Location
created_by_id est une entité people
J'ai supprimé créé par et ça marche. pourrait avoir quelque chose à voir avec ma cartographie.
Votre requête semble incomplète. Il se termine par FROM people p1_
. e0_
ne vient de nulle part. Vous devriez avoir un JOIN
.
L'erreur vient de e0_.id
car c'est la première référence à e0_
et il ne sait pas ce que c'est.
people
est-il le nom de table de l'entité Person
?
Veuillez mettre à jour votre question principale: mettre à jour l'emplacement et ajouter une personne
/** * @ORM\ManyToOne(targetEntity="App\Entity\Person") * @ORM\JoinColumn(name="created_by_id", referencedColumnName="id") */ protected $createdBy; created by needed to be mapped properly. i am such a ninny!Thanks for the person that noticed "where is people coming from" that helped me, sometimes you cant see stuff in your own code!