如何 Select 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');
但它 return 只有两个字段。
Array ( [7] => Category 1 )
lists()
将生成的集合转换为具有键值的数组。那里只能有两个数据库列。否则你必须使用 select()
但你会得到一个模型集合而不仅仅是一个数组。
$categories = CategoryModel::select('catID', 'catName', 'imgPath')
->where('catType', '=', 'Root')
->get();
CategoryModel::wherecatType('Root')
->pluck('catName', 'catID', 'imgPath');
选择多列
CategoryModel::get(['catName', 'catID', 'imgPath']);
也适用于 Laravel 5.3!
从 laravel 5.3 版开始^ lists()
已弃用,改用函数 pluck()
。
pluck()
returns 一个集合,如果您需要一个简单的数组,只需在其前面添加 ->toArray()
。
如果你想获得某些列,那么你可以使用两种方法之一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');
Model::get(['field1','field2'])
CategoryModel::get(['catName', 'catID', 'imgPath'])->where('catType','Root');
如何在 Laravel Eloquent 中执行以下查询?
SELECT catID, catName, imgPath FROM categories WHERE catType = "Root"
我试过关注
CategoryModel::where('catType', '=', 'Root')
->lists('catName', 'catID', 'imgPath');
但它 return 只有两个字段。
Array ( [7] => Category 1 )
lists()
将生成的集合转换为具有键值的数组。那里只能有两个数据库列。否则你必须使用 select()
但你会得到一个模型集合而不仅仅是一个数组。
$categories = CategoryModel::select('catID', 'catName', 'imgPath')
->where('catType', '=', 'Root')
->get();
CategoryModel::wherecatType('Root')
->pluck('catName', 'catID', 'imgPath');
选择多列
CategoryModel::get(['catName', 'catID', 'imgPath']);
也适用于 Laravel 5.3!
从 laravel 5.3 版开始^ lists()
已弃用,改用函数 pluck()
。
pluck()
returns 一个集合,如果您需要一个简单的数组,只需在其前面添加 ->toArray()
。
如果你想获得某些列,那么你可以使用两种方法之一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');
Model::get(['field1','field2'])
CategoryModel::get(['catName', 'catID', 'imgPath'])->where('catType','Root');