UserDegree という名前の mysql データベース テーブルがあります。Doctrine を使用して PHP にインポートしようとすると、モデル名 Userdegree が生成されます。これを解決する方法はありますか?
私は本当に良い教義のドキュメントを見つけることができません.
ありがとう!
あなたの特定の問題についてはわかりませんが、「良いドクトリンのドキュメント」の部分については、マニュアルを試しましたか? Doctrine ORM for PHPを参照してください。ドキュメントがあまりない、または完全に時代遅れの他のプロジェクトで得られるものと比較すると、実際には非常に優れていると思います。
あなたの問題について(前に言ったように、よくわかりません):DoctrineはDBのテーブル名から各「単語」を取得し、それをPHPの「名前」に変換すると思います。多くの場合、テーブル名の「単語」はアンダースコア ' _
' で区切られ、すべて小文字または大文字と小文字が区別されます。
テーブルuser_degree
に " " ではなく" " という名前を付けた場合、 DoctrineUserDegree
はそれが 2 つの "単語" で構成されていることを検出し、" " という名前の PHP クラスを作成するはずです。と呼ばれるクラス。UserDegree
post_has_tag
PostHasTag
パスカル・マーティンは正しいです。テーブルにはuser_degreeのような名前を付ける必要があります。この場合、DoctrineはUserDegreeクラスを生成します。
また、最近、Doctrineでキャメルケースのコードを生成しながら、すべてのデータベース識別子をunder_scoresに保つことが可能であることがわかりました。上記のように、テーブル名に対して自動的に発生します。フィールド名については、YAMLスキーマファイルのエイリアス機能(名前:user_id as userId)を使用してキャメルケースにマッピングできます。さらに、Doctrineのカスタムタスクを開発することで、フィールドエイリアシングを自動化できます。