5
votes

So I'm trying to follow symfony2's tutorial on doctrine for my own website and modeling my User entity after their Product one.

Also, before anyone marks this a duplicate, I have already tried the solutions given in numerous other questions with no luck:

and the list goes on

I have my entity class:

<?php
    namespace MySite\MyBundle\Entity;

    use Doctrine\ORM\Mapping as ORM;

    /**
     * @ORM\Entity
     * @ORM\Table(name="user")
     */
    class User
    {
        /**
         * @ORM\Column(type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id;

        /**
         * @ORM\Column(type="string", length=100)
         */
        protected $name;

        /**
         * @ORM\Column(type="string", length=64)
         */
        protected $password;
    }
?>

Now, I'm running the command:

$ php app/console doctrine:generate:entities MySite/MyBundle/Entity/User

to generate the accessor methods. However, when I do this, I get the error:

[Doctrine\ORM\Mapping\MappingException]
Class "MySite\MyBundle\Entity\User" is not a valid entity or mapped super class.
3
When you use php app/console doctrine:generate:entities - it means that you generate entity from database. But you create entity manualy and try to overwrite it. Run php app/console doctrine:mapping:info It will show you if you have problems in the mapping structure in doctrineDmitriy.Net
Thanks for the reply. Is the symfony tutorial wrong then? In the "Generating Getters and Setters" section, it says "doctrine:generate:entities" is to generate getters and setters. And when I run doctrine:mapping:info I get: [Exception] You do not have any mapped Doctrine ORM entities according to the current configuration. If you have entities or mapping files you should check your mapping configuration for errors.user2443357
I'm not trying to generate them from a database, but from the PHP files. Anyways, I figured it out, I was missing a auto_mapping: true line in my config.yml; everything works as expected now.user2443357
Good. If user user2443357 gave correct answer, please set answer as "correct"Dmitriy.Net

3 Answers

4
votes

Ok, I figured it out myself. My problem is that my config.yml was wrong. I was missing the auto_mapping: true line in my config.yml.

doctrine:
    # (dbal stuff here)

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

After adding that, everything auto-generates fine with the php app/console doctrine:generate:entities MySite/MyBundle/Entity/User line

0
votes

I had a similar issue and I found at the end the problem in my case was I missed the class that extends Bundle

namespace Acme\TagBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeTagBundle extends Bundle
{
}

and declaring that class in AppKernel.php under the bundles array.

0
votes

My problem was that I named the folder entity instead of Entity. When I fixed that it worked like a charm.