2010-08-05 17 views
0

Que se passe-t-il lorsque deux modèles sont associés à une relation belongsTo et hasOne en même temps?
Est-ce que l'infrastructure détecte cette situation pour éviter de récupérer trop de données?Qu'advient-il des modèles avec configuration de relation BelongsTo et hasOne?

EDIT: CakePHP spécifiquement, bien que ce que d'autres cadres pourraient faire serait également utile.

+0

Chustar ou Thorpe, avez-vous appris davantage sur cette situation que vous pouvez partager avec nous? Je suis confus à propos de l'utilisation de hasOne et belongsTo en même temps. Les docs ne montrent pas cela, et je ne suis pas sûr de ce que cela signifie. – Ray

+0

@Ray K, voir la réponse ci-dessous. Essentiellement, le cadre ne chargerait pas toutes les données disponibles à moins que je ne le demande. De cette façon, il ne m'appartient pas d'éviter les demandes circulaires. Mais si je fais des demandes circulaires, j'essaierai de les remplir. – chustar

Répondre

0

La plupart des cadres effectuent un chargement paresseux de données, c'est-à-dire que les données sont extraites uniquement lorsque la propriété de l'objet est accédée.

+0

Donc la plupart des frameworks fonctionneraient bien avec ceci à moins que j'aie essayé quelque chose comme 'print_r()'? – chustar

+0

si print_r() est limité à un seul enregistrement, seul cet enregistrement sera récupéré. d'autre part, si print_r() essaie d'afficher une relation, dans les coulisses, les curseurs pdo de tous les objets associés pertinents vont activer et récupérer les données nécessaires. J'espère que vous n'utilisez pas print_r() pour un grand tableau multidimensionnel d'objets. – stillstanding