簡體   English   中英

如何在 Laravel Eloquent 中選擇某些字段?

[英]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()方法將stringarray都作為參數

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM