0
votes

php bin / console make: crud contient des bogues lorsque j'essaye de créer un nouveau

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/

Erreur PHP 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


0 commentaires

3 Réponses :


0
votes
  • assurez-vous qu'il n'y a pas de table existante avec le même nom dans la même base de données
  • assurez-vous de mettre à jour votre schéma de base de données après avoir créé ou modifié des entités. Si vous souhaitez suivre les documents, vous devrez utiliser les migrations, mais si vous souhaitez apporter les modifications immédiatement, vous pouvez le faire
  • bin/console doctrine:schema:update: --force 
    

    Attention: n'utilisez pas cette commande dans un environnement de production!


0 commentaires

0
votes

Quelle est cette entité people ? La requête se trouve sur cette table, pas sur Location


6 commentaires

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



1
votes
/**
 * @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!

0 commentaires