J'ai ci-dessous trois modèles:
dans mon code> modèle code> modèle, j'ai: p> alors, dans mon modèle de fieldroute, j'ai: P > $stream = Stream::find(1);
$routeFields = $stream->FieldRoutes()->fields;
3 Réponses :
Essayez
La réponse fournie a été signalée pour examen comme poste de qualité inférieure. Voici quelques directives pour Comment puis-je écrire une bonne réponse? . Cette réponse fournie peut être correcte, mais elle pourrait bénéficier d'une explication. Les réponses de code seulement ne sont pas considérées comme des réponses «bonnes». De Examiner .
Ajoutez un certain contexte au code que vous voyez pour démontrer comment cela répond à la question.
Vous allez avoir besoin d'une boucle imbriquée pour gérer les relations imbriquées. Mais d'abord, l'erreur que vous obtenez est due à une fermeture manquante; Vous devez appeler Suivant, faisez-vous une boucle pour obtenir les champs: p> -> get () code> après le nom de la relation:
$stream = Stream::with(["FieldRoutes", "FieldRoutes.fields"])->find(1);
$routeFields = $stream->FieldRoutes;
foreach($routeFields AS $routeField){
$fields = $routeField->fields;
foreach($fields AS $field){
// Do whatever with $field
}
}
// Simplified
foreach($stream->FieldRoutes AS $routeField){
foreach($routeField->fields AS $field){
// Do whatever with $field
}
}
Vous pouvez essayer de charger l'impatience et de cueillir les valeurs.
$stream = Stream::with('FieldRoute.fields')->pluck('FieldRoute')->flatten()->pluck('fields')->flatten();
Qu'en est-il de la relation a-t-elle?
$ Stream-> fieldroutes () code> pourrait vous donner plus d'un résultat, il sera donc probablement sous une certaine collection. Donc, vous feriez mieux de pour acheter le
$ Stream-> fieldroutes () code> et accédez aux champs de la propriété dynamique
code> sur chaque élément de l'itération.