类,命名空间,bin /控制台命令

时间:2017-02-06 23:20:47

标签: php doctrine symfony crud

我今天下午刚开始使用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是我关注的视频。

  1. 我开始使用Symfony的空白安装。
  2. 连接数据库。
  3. Ran php bin/console generate:doctrine:entity,写道 AppBundle:任务,并按所有选项默认输入 创建一个简单的名称和注释字段。
  4. Ran php bin/console generate:doctrine:crud编写了AppBundle:Tasks,并按下了所有选项默认值,但选择yes以生成所有CRUD命令
  5. php bin/console doctrine:schema:update --force
  6. php bin/console cache:clear
  7. 转到//localhost/symfony/web/app_dev.php/tasks,我被带到列表中,工作正常。
  8. 但如果我转到localhost/symfony/web/app_dev.php/tasks/new或点击生成的按钮,我会收到上述错误。
  9. 错误信息对我来说是个希望,尽管它是最好的礼貌尝试。我可以看到Entity下有一个Tasks.php文件,它定义了“Tasks”类,而TasksController设置为use AppBundle\Entity\Tasks,所以我不知道为什么它不能解决这个问题。< / p>

    我正在尝试构建一个相当简单的任务管理应用程序,但我对Symfony来说是全新的,并且在PHP中没有扎实的背景知识。有人可以解释一下我可能在哪里出错了吗?

1 个答案:

答案 0 :(得分:1)

要检查的事项:

  • 文件Task.php的名称与类名class Task相同。注意:一个类不应该是多项的,因此Task是正确的,Tasks是错误的
  • 您的use AppBundle\Entity\Task;命名空间和类声明
  • 之间有Controller

为了避免这个错误,您可以使用PHP IDE,如Phpstorm(或其他),它会在您忘记添加use语句时以彩色显示您的语句。它还会自动添加它:D