Symfony2 No Metadata Classes to process

2019-02-05 01:10发布

After creating entity with:

php app/console doctrine:generate:entity

and while using:

php app/console doctrine:schema:update --force

I encountered:

No Metadata Classes to process.

Entity

namespace ISLab\AdminBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="menu_items")
 */
class MenuItem
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(name="parent", type="integer")
     */
    private $parent;

    // ...
}

9条回答
Explosion°爆炸
2楼-- · 2019-02-05 01:21

I had a similar problem and took me a while until I find out how to clear out the cache. Clearing only doctrine's cache did not work for me. Use the command below to clear the entire environment (production one in this case)

php app/console cache:clear --env=prod

查看更多
ゆ 、 Hurt°
3楼-- · 2019-02-05 01:21

I had the same problem when I generate an Entity through the interactive generator from command line. When I first created I set the Configuration Format to PHP and that didn't work. So I deleted it and tried again but this time I selected format = annotation. Then it worked! Maybe this could solve someone's problem.

查看更多
时光不老,我们不散
4楼-- · 2019-02-05 01:24

I had the same problem when i update the database. So i follow this solution and i tried to adapt in my case and it works. I think that is a problem of automapping indeed also with auto_mapping setted true, symfony wasn't able to find the entities. I hope that it can help.

  orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true
    mappings:
        AppBundle:
            type: annotation
            is_bundle: false
            dir: %kernel.root_dir%/../src/AppBundle/Entity/
            prefix: AppBundle\Entity
            alias: AppBundle
查看更多
smile是对你的礼貌
5楼-- · 2019-02-05 01:24

Make sure your entities are placed in your bundle's Entity directory. In my case they were in Entities instead.

查看更多
欢心
6楼-- · 2019-02-05 01:26

In my case, i solve the problem creating the Entity folder. For some reason it had been eliminated. I hope that it can help.

查看更多
唯我独甜
7楼-- · 2019-02-05 01:29

So entity manager didn't create metadata for your entity. Here are things I would check first:

  1. Clear your cache
  2. Make sure your AdminBundle is registered in AppKernel.
  3. Make sure that entity manager's automapping is true. Or set it up correctly if you're using custom EM.

A bit offtopic:

I see you're making a menu system and I would strongly suggest you to check out Doctrine Extensions Tree which should allow you to query and edit items much more efficiently than with your structure.

查看更多
登录 后发表回答