我今天下午刚开始使用Symfony框架。我转到“CRUD”并按照教程使用内置的工具生成CRUD。但是,使用默认命令,我收到错误。
Attempted to load class "Task" from namespace "AppBundle\Controller".
Did you forget a "use" statement for another namespace?
500 Internal Server Error - ClassNotFoundException
This是我关注的视频。
php bin/console generate:doctrine:entity
,写道
AppBundle:任务,并按所有选项默认输入
创建一个简单的名称和注释字段。php bin/console generate:doctrine:crud
编写了AppBundle:Tasks,并按下了所有选项默认值,但选择yes以生成所有CRUD命令php bin/console doctrine:schema:update --force
php bin/console cache:clear
//localhost/symfony/web/app_dev.php/tasks
,我被带到列表中,工作正常。localhost/symfony/web/app_dev.php/tasks/new
或点击生成的按钮,我会收到上述错误。错误信息对我来说是个希望,尽管它是最好的礼貌尝试。我可以看到Entity下有一个Tasks.php文件,它定义了“Tasks”类,而TasksController设置为use AppBundle\Entity\Tasks
,所以我不知道为什么它不能解决这个问题。< / p>
我正在尝试构建一个相当简单的任务管理应用程序,但我对Symfony来说是全新的,并且在PHP中没有扎实的背景知识。有人可以解释一下我可能在哪里出错了吗?
答案 0 :(得分:1)
要检查的事项:
Task.php
的名称与类名class Task
相同。注意:一个类不应该是多项的,因此Task
是正确的,Tasks
是错误的use AppBundle\Entity\Task;
命名空间和类声明Controller
为了避免这个错误,您可以使用PHP IDE,如Phpstorm(或其他),它会在您忘记添加use语句时以彩色显示您的语句。它还会自动添加它:D