BadMethodCallException avec le message " Appel à la méthode non Éclairer\Database\Query\Builder::toArray()'
Je suis en train de travailler avec @Jeffrey_way série de Laracasts
De nombreuses de Nombreuses Relations (Avec les Étiquettes)
Ci-dessous le code que j'ai écrit dans CMD à l'aide de Laravel Bricoleur:
Après l'exécution de la dernière ligne de code ($article->tags()->toArray();
Bien que tout semble être OK avec mon code mais je reçois l'erreur suivante:
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::toArray()'
toute aide serait grandement appréciée 🙂
OriginalL'auteur Hazmat | 2016-06-14
Vous devez vous connecter pour publier un commentaire.
Si vous voulez à réellement obtenir de données relationnelle, vous ne mettez pas de parenthèse arount
tags
. Cela fonctionne parfaitement:Vous mettez entre parenthèses lorsque vous avez besoin de "requête" de la collection (Ex. synchroniser, sauvegarder, de les joindre).
Référence: https://laravel.com/docs/5.1/eloquent-relationships#many-to-many
Vous êtes les bienvenus. Amusez-vous avec Laravel 🙂
OriginalL'auteur YigitOzkavci
Essayez plutôt ceci:
Sous-jacente de la
tags()
est probablement unQuery\Builder
objet qui représente une requête qui n'a pas encore exécuté. Au lieu de cela vous avez besoin d'un objet de Collection qui est une requête qui a exécuté, sur laquelle appelertoArray()
.->all()
est l'un de ces appels, qui convertit un générateur de requêtes dans une collection que le fait de l'exécution de la requête.BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::all()'
OK essayez d'obtenir (à la place de tous(). Cela devrait fonctionner.
Selon votre version de Laravel, tous les() peut renvoyer une collection ou un tableau. Si elle retourne un tableau, alors vous n'avez pas besoin de l' ->toArray() bits.
Merci pour votre aide
OriginalL'auteur delatbabel