[解決済み] Doctrine 2 は manyToOne リレーションで nullable=false を使うことはできないのですか?
2022-05-18 04:32:52
質問
An
User
ある
Package
を連想させる。多くのユーザーが同じパッケージを参照することができます。
User
がなければ成立しない。
Package
を定義しました。
User
は関係を所有する必要があります。リレーションは双方向なので
Package
は、その中に0人以上のユーザーを持つ。
これらの要件は、以下のことにつながります。
ManyToOne
に対する
User
と
OneToMany
関係
Package
ただし、ドクトリン2において
package_id
において
user
テーブル(外国人キー)では
null
の値を設定することができます。私は
nullable=false
を設定してみましたが、コマンド
php app/console doctrine:generate:entities DL --path="src" --no-backup
属性がないことを示す
nullable
という関係で
ManyToOne
.
何が足りないのでしょうか?
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Package", inversedBy="users")
*/
private $package;
}
class Package
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="package")
*/
private $users;
}
どのように解決するのですか?
ManyToOneリレーションにJoinColumnアノテーションを使用します。
/**
* @ORM\ManyToOne(targetEntity="Package", inversedBy="users")
* @ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
*/
private $package;
ManyToOne自体は特定のカラムに関連しないので、nullableにすることはできません。一方、JoinColumnはデータベース内のカラムを特定します。したがって、nullableやuniqueのような"normal"属性を使用することができます!
関連
-
[解決済み] Composerで単一のライブラリを更新する方法は?
-
[解決済み】拡張子.yamlと.ymlの違いは何ですか?[重複あり]
-
[解決済み】Doctrine QueryBuilder で行数を数える。
-
[解決済み】Symfony 2.xでは、本当にすべてをバンドルにすべきなのか?
-
[解決済み】Twigテンプレートで現在のURLを取得する?
-
[解決済み] Symfony2 の config.yml から設定を読み込むには?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] symfony2のコントローラでparameters.ymlから読み込むにはどうしたらいいですか?
-
[解決済み] symfony2 : リクエストをフォームにバインドした後にフォームのバリデーションエラーを取得する方法
-
[解決済み] Twigのパスに複数のパラメータを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Composerで単一のライブラリを更新する方法は?
-
[解決済み】拡張子.yamlと.ymlの違いは何ですか?[重複あり]
-
[解決済み】Doctrine QueryBuilder で行数を数える。
-
[解決済み】Symfony 2.xでは、本当にすべてをバンドルにすべきなのか?
-
[解決済み】Twigテンプレートで現在のURLを取得する?
-
[解決済み] Symfony2 の config.yml から設定を読み込むには?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] symfony2のコントローラでparameters.ymlから読み込むにはどうしたらいいですか?
-
[解決済み] symfony2 : リクエストをフォームにバインドした後にフォームのバリデーションエラーを取得する方法
-
[解決済み] Doctrine 2 は manyToOne リレーションで nullable=false を使うことはできないのですか?