Comment faire suite à une requête dans Laravel Eloquent?
SELECT catID, catName, imgPath FROM categories WHERE catType = "Root"
J'ai essayé de suivre
CategoryModel::where('catType', '=', 'Root')
->lists('catName', 'catID', 'imgPath');
mais il ne retourne que deux champs.
Array ( [7] => Category 1 )
lists()
transforme la collection résultante en un tableau avec une valeur de clé. Vous ne pouvez y avoir que deux colonnes de base de données. Sinon, vous devez utiliser select()
mais vous obtiendrez alors une collection de modèles et pas seulement un tableau.
$categories = CategoryModel::select('catID', 'catName', 'imgPath')
->where('catType', '=', 'Root')
->get();
CategoryModel::wherecatType('Root')
->pluck('catName', 'catID', 'imgPath');
Sélection de plusieurs colonnes
CategoryModel::get(['catName', 'catID', 'imgPath']);
Fonctionne avec Laravel 5.3 aussi!
A partir de laravel version 5.3, ^ lists()
est obsolète et la fonction pluck()
est utilisée à la place.
pluck()
renvoie une collection et si vous avez besoin d'un tableau simple, ajoutez-y simplement ->toArray()
.