web-dev-qa-db-fra.com

Laravel Éloquent avec et trouver

Pourquoi ça ne marche pas?

Article::with('category')->find($ids)

J'ai obtenu une exception de conversion de tableau en chaîne.

Mais si je divise la requête en 2 parties comme ceci:

$articles = Article::with('category')

et

$articles = $articles->find($ids)

Je n'ai eu aucune exception et le résultat est correct.

33
Marco

Juste pour la postérité ... une autre façon de le faire est:

Article::with('category')->whereIn('id', $ids)->get();

Cela devrait être mieux (plus performant), car cela laisse la requête au gestionnaire de base de données

30
dani24

Essayer:

Article::with('category')->get()->find($ids);

Vous devez d'abord obtenir les articles avant de pouvoir appeler find () je crois.

Avertissement: Cela récupère chaque article de la base de données et les charge tous en mémoire, puis sélectionne un seul de toutes ces données et le renvoie. Ce n'est probablement pas comme cela que vous voudriez gérer ce problème.

16
Half Crazed

Cela vous donnera les résultats basés sur un tableau d'ID dans Laravel 4

Article::whereIn('id', $ids)->with('category')->get();
5
Adam