最近リリースされたジェネレータを昨日試しましたが、問題が発生しました。データベース&のエンティティを正しく作成できました。Symfony2コンソールで生成されたエンティティとタイムゾーンエラーのエラー
/**
* Acme\BlogBundle\Entity\Post
*
* @Table()
* @Entity
*/
の代わり:
php app/console doctrine:schema:create
[Doctrine\Common\Annotations\AnnotationException]
[Semantical Error] The annotation "@Table" in class Acme\BlogBundle\Entity\Post was never imported.
doctrine:schema:create [--dump-sql] [--em[="..."]]
私は最終的に問題を発見し、それが生成されたエンティティのような注釈を持っていたこと。しかし、すぐに、私は、スキーマを作成しようとしたとして、それは次のようにエラー表示を開始しました
/**
* Acme\BlogBundle\Entity\Post
*
* @ORM\Table(name="post")
* @ORM\Entity
*/
テーブル名を@Tableアノテーションに、ORM \をすべてのアノテーションに手動で追加する必要がありました。
は今、エラーが変更されました:
php app/console doctrine:schema:create
ATTENTION: This operation should not be executed in a production environment.
Creating database schema...
[Exception] DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Calcutta' for 'IST/5.0/no DST' instead.
doctrine:schema:create [--dump-sql] [--em[="..."]]
はどのようにして、タイムゾーンのエラーを修正することができます。
と私はSymfony Interactive Generators videoを見ましたが、エンティティはデフォルトで@ORM \で生成されています。手動で追加するのはテーブル名だけでした。私のディストリビューションが間違った注釈でそれを生成したのはなぜですか?
ええ、どこですか。 Symfony2のどこにでもこの設定がありません。php.iniにはすでに値が設定されています。 – Aayush
@Aayush:私はSf2を数週間使っていないので、何か変わったかもしれませんが、 'date_default_timezone_set()'をブートストラップファイルに入れることができます。通常は 'PROJECT_ROOT/bootstrap.php'です。 – Crozin
ありがとうございました。私がSymfony2で何か起こったのを見たのは初めてです。これはすばらしいことですが、今私は動機付けられています。それはスキーマとテーブルを生成しました。どうもありがとう。 @Crozin:AppKernel.phpの一番上に置くと機能しました。あなたの答えをありがとう。 私はまだ1つの質問を持っています:なぜコンソールジェネレータはエンティティを間違って生成しましたか? – Aayush