dev*_*l Ψ 95 orm laravel eloquent laravel-5
假设我在表中有7列,我想只选择其中两列,就像这样
SELECT `name`,`surname` FROM `table` WHERE `id` = '1';
Run Code Online (Sandbox Code Playgroud)
在laravel雄辩的模型中,它可能看起来像这样
Table::where('id', 1)->get();
Run Code Online (Sandbox Code Playgroud)
但我想这个表达式会选择id等于1的所有列,而我只想要两列(name,surname).如何只选择两列?
Mar*_*łek 170
你可以这样做:
Table::select('name','surname')->where('id', 1)->get();
Run Code Online (Sandbox Code Playgroud)
Utk*_*dey 51
Table::where('id', 1)->get(['name','surname']);
Run Code Online (Sandbox Code Playgroud)
Siv*_*tti 34
通过使用all()方法,我们可以从表中选择特定的列,如下所示.
ModelName::all('column1', 'column2', 'column3');
Run Code Online (Sandbox Code Playgroud)
注意:Laravel 5.4
Sam*_*mie 23
你也可以find()像这样使用:
ModelName::find($id, ['name', 'surname']);
Run Code Online (Sandbox Code Playgroud)
该$id变量可以是如果你需要检索模型的多个实例的数组.
Mos*_*adi 14
获取一列的值:
Table_Name::find($id)->column_name;
Run Code Online (Sandbox Code Playgroud)
您可以将此方法与 where 子句一起使用:
Table_Name::where('id',$id)->first()->column_name;
Run Code Online (Sandbox Code Playgroud)
或使用此方法绕过 PhpStorm “在 App\Models 中找不到的方法”:
Table_Name::query()->where('id','=',$id)->first()->column_name;
Run Code Online (Sandbox Code Playgroud)
在查询构建器中:
DB::table('table_names')->find($id)->column_name;
Run Code Online (Sandbox Code Playgroud)
与 where 条款:
DB::table('table_names')->where('id',$id)->first()->column_name;
Run Code Online (Sandbox Code Playgroud)
或者
DB::table('table_names')->where('id',$id)->first('column_name');
Run Code Online (Sandbox Code Playgroud)
最后一个方法结果是数组
小智 13
首先需要创建一个表示该表的Model,然后使用下面的Eloquent方式获取仅2个字段的数据.
Model::where('id', 1)
->pluck('name', 'surname')
->all();
Run Code Online (Sandbox Code Playgroud)
从 laravel 5.3 only using get()method 您可以获得表的特定列:
YouModelName::get(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
或者从 laravel 5.4 开始,您还可以使用all()method 来获取您选择的字段:
YourModelName::all('id', 'name');
Run Code Online (Sandbox Code Playgroud)
使用上述两种方法,get()或者all()您也可以使用,where()但两者的语法不同:
模型::全部()
YourModelName::all('id', 'name')->where('id',1);
Run Code Online (Sandbox Code Playgroud)
模型::get()
YourModelName::where('id',1)->get(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
小智 6
use App\Table;
// ...
Table::where('id',1)->get('name','surname');
Run Code Online (Sandbox Code Playgroud)
如果没有
Table::all('name','surname');
Run Code Online (Sandbox Code Playgroud)
你也可以使用 pluck。
Model::where('id',1)->pluck('column1', 'column2');
Run Code Online (Sandbox Code Playgroud)
您可以使用get()以及all()
ModelName::where('a', 1)->get(['column1','column2']);
Run Code Online (Sandbox Code Playgroud)
小智 5
使用以下代码:-
$result = DB::Table('table_name')->select('column1','column2')->where('id',1)->get();
Run Code Online (Sandbox Code Playgroud)
例如 -
$result = DB::Table('Student')->select('subject','class')->where('id',1)->get();
Run Code Online (Sandbox Code Playgroud)
小智 5
要获取多列(返回集合):
Model::select('name','surname')->where('id', 1)->get();
Run Code Online (Sandbox Code Playgroud)
如果您想将列作为数组获取,请使用以下代码:
Model::select('name','surname')->where('id', 1)->get()->toArray();
Run Code Online (Sandbox Code Playgroud)
如果您想获得单个列,请尝试以下操作:
Model::where('id', 1)->first(['column_name'])->column_name;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
229307 次 |
| 最近记录: |