Question

Comment devrait être mis en œuvre un à un rapport dans la doctrine facultative ORM et Symfony? Supposons qu'il y ait des dossiers représentés dans la base de données. Chaque dossier peut avoir une icône par défaut ou une icône personnalisée représentée dans une autre table. Comment cette relation doit être décrite dans le fichier de schéma? Comment puis-je dire que dans le cas de dossier donné par rapport fait ou ne se produit pas?

Je me dois deviner, mais chacun ne semble pas être assez bon:

1) Disons que je définis le tableau folder_icon avec colonne id et colonne folder_icon_id dans le tableau de folder et un lien entre ces colonnes avec clé étrangère. Si folder_icon_id contient NULL, la relation ne se produit pas. Si elle contient une valeur entière, il pointe vers l'icône du dossier respectif. Quand je mets en œuvre de cette façon et essayer d'obtenir l'icône de dossier en utilisant quelque chose comme $ dossier-> getFolderIcon (), je reçois une instance de classe FolderIcon avec des champs définis à null (où je préférerais excpect pour obtenir quelque chose comme NULL, FALSE ou Doctrine_Null ). Pourquoi est-il? Comment dois-je vérifier si l'objet retourné n'est pas le dossier « réel » icône?

2) Supposons que j'utiliser la méthode similaire à précédente mais je définir une première rangée de table folder_icon être l'icône par défaut, de sorte que chaque dossier qui ne dispose pas d'icône personnalisée sélectionnée est liée à cette première ligne. Dans ce cas, il n'y a pas de problème à obtenir certains cas fictifs de classe FolderIcon. Mais il y a un problème si dossier personnalisé icône est la base de données de forme supprimée, car il n'y a pas de comportement onDelete « SET 1 » pour relier les dossiers à l'aide de l'icône supprimé avec l'icône par défaut.

Comment ce problème devrait être résolu? Quelle est la bonne façon de définir ce genre de relation dans le fichier de schéma?

Était-ce utile?

La solution

Le problème est avec les méthodes magiques getVariable

Utilisez $ dossier-> folder_icon et pour tester une existence que l'utilisation de la relation isset (). Avoir une lecture du site Web de la doctrine docs sur le test de l'existence d'une relation, je suis actuellement incapable de mobile pour lien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top