尽管使用了命名空间,但在控制器中无法识别由make:entity制成的实体类

时间:2019-11-19 04:28:10

标签: php symfony doctrine symfony4

Symfony 4 中,我使用bin/console创建了新实体:

php bin/console make:entity Being
...

它创建了Entity/Being.phpRepository\BeingRepository.php文件。

后来我也使用了make:migrationdoctrine:migration:migrate,现在在数据库中可以看到我的更改。

问题是,当我在Controller/DefaultController.php中编写简单控制器时:

namespace App\Controller;
use App\Entity\Being;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class DefaultController extends AbstractController
{

/**
 * @Route("/", name="blog_index")
 */
public function index()
{
    $entityManager = $this->getDoctrine()->getManager();
    $beings =  $entityManager->getRepository(Being::class);
    return $this->render('default/index.html.twig',
        ["beings" => $beings->findAll()]);
}
}

我收到错误消息:

  

“ App \ Entity \ Being”类不存在

我还尝试将Being显式更改为\App\Entity\Being,结果相同。

请注意,我尚未触摸make:entityEntity/Being.phpRepository\BeingRepository.php)创建的文件。第一个看起来像这样:

<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\BeingRepository")
 */
class Being
{
...

我想念什么吗?

1 个答案:

答案 0 :(得分:1)

尝试仅在控制台中执行作曲家dump-autoload或仅执行composer dumpa。在大多数情况下,它会有所帮助。

composer dumpa