0

Doctrine ORMとSymfonyで、通性的な1対1の関係をどのように実装する必要がありますか?データベースにいくつかのフォルダが表示されているとします。各フォルダには、デフォルトのアイコンまたは別のテーブルに表示されるカスタムアイコンを含めることができます。この関係はスキーマファイルでどのように記述されるべきですか?与えられたフォルダの関係の場合に発生するか発生しないかをどのように知ることができますか?

私自身は推測する必要がありますが、それぞれがあまり良くないようです:

folder_icon1)テーブルにid列とfolder_icon_id列を含むテーブルを定義しfolder、これらの列を外部キーでリンクするとします。NULLが含まれている場合folder_icon_id、関係は発生しません。整数値が含まれている場合は、それぞれのフォルダアイコンを指します。この方法で実装し、$ folder-> getFolderIcon()などを使用してフォルダーアイコンを取得しようとすると、フィールドがnullに設定されたFolderIconクラスのインスタンスが取得されます(NULL、FALSE、Doctrine_Nullなどを取得することを期待します)。 )。なんでそうなの?返されたオブジェクトが「実際の」フォルダアイコンではないかどうかを確認するにはどうすればよいですか?

2)前と同様の方法を使用していると仮定しますfolder_iconが、テーブルの最初の行をデフォルトアイコンとして定義し、カスタムアイコンが選択されていない各フォルダーがこの最初の行に関連付けられるようにします。この場合、FolderIconクラスのダミーインスタンスを取得しても問題はありません。ただし、カスタムフォルダアイコンがデータベースから削除されると問題が発生します。これは、削除されたアイコンを使用するフォルダをデフォルトのアイコンに関連付けるonDelete動作「SET1」がないためです。

この問題はどのように解決する必要がありますか?スキーマファイルでこの種の関係を定義する適切な方法は何ですか?

4

1 に答える 1

1

問題は魔法のメソッド getVariable にあります

$folder->folder_icon を使用し、その関係の存在をテストするには isset() を使用します。関係の存在をテストすることについての教義のウェブサイトのドキュメントを読んでください。私は現在モバイルであるため、リンクできません。

于 2010-07-04T18:32:17.860 に答える