Laravel: travailler avec des relations éloquentes

Laravel facilite grandement la communication avec la base de données avec Eloquent. Lorsque vous travaillez avec des relations éloquentes, vous devez être conscient lorsque vous appelez des variables dynamiques (à l'aide des méthodes magiques de PHP) que les instances des modèles ne reflètent pas les nouvelles modifications, mais sont stockées en permanence lors de leur premier appel.


Dans l'exemple suivant, il se comporte comme prévu:

6d32588c32f080ef1896633f261e1e14

$ model-> col retourne toujours l'ancienne valeur même après la modification (car la valeur a été initialement récupérée une fois avec Model :: find (42) puis enregistrée). Si vous vous adressez maintenant à une autre table connectée avec $ model-> depend_table , vous pouvez vous attendre à ce que son deuxième appel renvoie la nouvelle valeur:

6d32588c32f080ef1896633f261e1e14

Ce n'est pas non plus le cas ( $ depend_table = $ model-> dependant_table met en cache toute la table dépendante). Pour obtenir une valeur courante, la fonction explicitement définie dependant_table () est appelée:

6d32588c32f080ef1896633f261e1e14

Retour