2017-02-06 20 views
1

私は今朝、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. php bin/console generate:doctrine:crudがAppBundle書いた蘭:タスク、およびすべてのオプションのデフォルトから入るが、生成するために[はい]を選択押されたすべてのCRUDは
  5. php bin/console doctrine:schema:update --force
  6. //localhost/symfony/web/app_dev.php/tasksphp bin/console cache:clear
  7. ゴー蘭蘭コマンドと私はリストにもたらしています、 正常に動作します。
  8. localhost/symfony/web/app_dev.php/tasks/newにアクセスするか、生成されたボタンをクリックすると、上記のエラーが表示されます。

エラーメッセージは、丁寧な対応が最善であるにもかかわらず、ギリシャ語です。私はEntityの下にTasks.phpファイルがあり、それがクラス "Tasks"を定義し、TasksControllerがuse AppBundle\Entity\Tasksに設定されているので、なぜこれがすべて私の限られた理解では動かないのか分かりません。

私は非常に単純なタスク管理アプリケーションを構築しようとしていますが、Symfonyを完全に新しくしており、まずはPHPの堅実な背景はありません。誰かがプロセスのどこで私が狂ったかもしれないか説明してもらえますか?チェックする

+3

エラーメッセージはタスクではないタスクを探しています。コントローラーに新しいTask()行がないかチェックしてください。そして、はい、一度仕事をしたら、タスクをタスクに変更して自分自身を保存してください。 – Cerad

+0

@セラードありがとう。それだった!私は複数のクラス名を持っていました –

答えて

0

もの:

  • ファイルTask.phpの名前はクラス名class Taskと同じです。注:このクラスはplurialにすべきではない、そうTaskは右らTasksであるあなたは、このエラーを回避するには、あなたのController名前空間とクラス宣言

use AppBundle\Entity\Task;を持って

  • 間違っている、あなたは、PHP IDEなどを使用することができますPhpstorm(またはその他)を使用すると、useステートメントを追加するのを忘れると、ステートメントがカラーで表示されます。D

  • +0

    ありがとう!最終的にこれを調べてそれを混乱させるチャンスがありましたが、実際それが問題でした。 今後の参考として、強制的なPHPのコンベンションや強制的なシンフォニーコンベンションを「タスク」とは対照的に、「手作業」としていますか?学ぶだけの好奇心。 –

    +0

    @ chris98.5いずれも強制されません。どちらもうまくいく。あなたが矛盾していたラインのどこかに。 – Cerad