[英]Laravel Eloquent how to select relation field as certain fields of main object
[英]How to Select Certain Fields in Laravel Eloquent?
如何在 Laravel Eloquent 中執行以下查詢?
SELECT catID, catName, imgPath FROM categories WHERE catType = "Root"
我試過跟隨
CategoryModel::where('catType', '=', 'Root')
->lists('catName', 'catID', 'imgPath');
但它只返回兩個字段。
Array ( [7] => Category 1 )
lists()
將結果集合轉換為具有鍵值的數組。 那里只能有兩個數據庫列。 否則你必須使用select()
但是你會得到一個模型集合而不僅僅是一個數組。
$categories = CategoryModel::select('catID', 'catName', 'imgPath')
->where('catType', '=', 'Root')
->get();
選擇多列
CategoryModel::get(['catName', 'catID', 'imgPath']);
也適用於 Laravel 5.3!
CategoryModel::wherecatType('Root')
->pluck('catName', 'catID', 'imgPath');
如果要獲取某些列,則可以使用兩種方法之一get()
或all()
但是兩者的語法不同, get()
方法將array
作為參數,而all()
方法將string
或array
都作為參數:
Model::all('field1','field2')以string
為參數
CategoryModel::all('catName', 'catID', 'imgPath')->where('catType','Root');
Model::all(['field1','field2'])以array
為參數
CategoryModel::all(['catName', 'catID', 'imgPath'])->where('catType','Root');
模型::get(['field1','field2'])
CategoryModel::get(['catName', 'catID', 'imgPath'])->where('catType','Root');
從 laravel 5.3 版開始,不推薦使用lists()
函數,而是使用函數pluck()
。
pluck()
返回一個集合,如果你需要一個簡單的數組,只需在它前面加上->toArray()
即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.