Generating Entity Getters and Setters in Symfony / Doctrine ORM

93,310

Solution 1

Try to delete this entity and regenerate them with next command:

php app/console doctrine:generate:entity --entity="EvrHomeBundle:Article" --fields="name:string(255) content:text exclusive_content:text creation_date:date views:integer votes:integer"

And then add manually:

/**
 * 
 * @ORM\ManyToOne(targetEntity="Subategory",inversedBy="articles")
 * @ORM\JoinColumn(name="subcategory_id",referencedColumnName="id")
 */
private $subcategory;

Solution 2

try :

php app/console doctrine:generate:entities EvrHomeBundle:Article

If you are using symfony 3.0 or higher then substitue app with bin:

php bin/console doctrine:generate:entities EvrHomeBundle:Article

If you are using symfony 4+ then :

php bin/console make:entity --regenerate 

Solution 3

php bin/console doctrine:generate:entities AppBundle

This will generate all the necessary getters and setters automatically into your entity files.

If you want to be specific about the tables, then use this:

php bin/console doctrine:generate:entities AppBundle:"TABLE_NAME"

Substitute "TABLE_NAME" with your table's name.

Solution 4

Mapping import ( from database )

php bin/console doctrine:mapping:import 'AppBundle\Entity' yml --path=src/AppBundle/Resources/config/doctrine

Generate Entityes from mapping but without getters and setters

php bin/console doctrine:mapping:convert annotation ./src 

OR

Generate Entityes from mapping with getters and setters

php bin/console doctrine:generate:entities AppBundle/Entity

Solution 5

Be carreful also to the ORM, to be count to generate getters/setters:

/**
 * @var date
 *
 * @ORM\Column(name="creation_date", type="date")

 */
Share:
93,310
SmootQ
Author by

SmootQ

Mohamed Taqi , Programmer and web developer.... And a design hobbyist

Updated on May 06, 2021

Comments

  • SmootQ
    SmootQ almost 3 years

    I have the following ORM Symfony entity with only properties :

    <?php
    
    namespace Evr\HomeBundle\Entity;
    
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * @ORM\Table(name="ev_article")
     * @ORM\Entity
     */
    class Article
    {
        /**
         *
         * @ORM\Column(name="article_id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
    
        /**
         * 
         * @ORM\ManyToOne(targetEntity="Subategory",inversedBy="articles")
         * @ORM\JoinColumn(name="subcategory_id",referencedColumnName="id")
         */
        private $subcategory;
    
    
        /**
         * 
         * @ORM\Column(type="string",length=512)
         */
        private $title;
    
        /**
         * 
         * @ORM\Column(type="text")
         */
        private $content;
    
        /**
         * 
         * @ORM\Column(type="text")
         */
        private $exclusive_content;
    
        /**
         * 
         * @ORM\Column(type="date")
         */
        private $creation_date;
    
    
         /**
         * 
         * @ORM\Column(type="integer")
         */
        private $views;
    
        /**
         * 
         * @ORM\Column(type="integer")
         */
        private $votes;
    
    
    }
    

    I want to generate setters and getters automatically, so I run the following command :

    app/console doctrine:generate:entities Evr/HomeBundle/Entity/Article
    

    And everytime I do this, it displays the following error message :

      [Doctrine\ORM\Mapping\MappingException]
      Class "Evr\HomeBundle\Entity\Article" is not a valid entity or mapped super
       class.
    
    
    
    doctrine:generate:entities [--path="..."] [--no-backup] name
    

    I don't know why it doesn't generate entities, is something wrong in the entity/annotations?