可以说我表中有7列,而我只想选择其中的两列,就像这样
SELECT `name`,`surname` FROM `table` WHERE `id` = '1';
在laravel雄辩的模型中,它可能看起来像这样
Table::where('id', 1)->get();
但是我想这个表达式会选择id等于1的所有列,而我只需要两列(名称,姓氏)。如何只选择两列?
可以说我表中有7列,而我只想选择其中的两列,就像这样
SELECT `name`,`surname` FROM `table` WHERE `id` = '1';
在laravel雄辩的模型中,它可能看起来像这样
Table::where('id', 1)->get();
但是我想这个表达式会选择id等于1的所有列,而我只需要两列(名称,姓氏)。如何只选择两列?
Answers:
您可以这样做:
Table::select('name','surname')->where('id', 1)->get();
SELECT name, surname FROM Table where id = 1
SQL查询
Table::where('id', 1)->get(['name','surname']);
通过使用all()方法,我们可以从表中选择特定的列,如下所示。
ModelName::all('column1', 'column2', 'column3');
注意:Laravel 5.4
您首先需要创建一个代表该表的模型,然后使用下面的口才方法仅获取2个字段的数据。
Model::where('id', 1)
->pluck('name', 'surname')
->all();
获取一列的值:
Table_Name::find($id)->column_name;
即使您可以将此方法与where子句一起使用:
Table_Name::where('id',$id)->first()->column_name;
在查询生成器中:
DB::table('table_names')->find($id)->column_name;
与哪里cluase:
DB::table('table_names')->where('id',$id)->first()->column_name;
要么
DB::table('table_names')->where('id',$id)->first('column_name');
最后一个方法结果是数组
从laravel 5.3仅使用get()
方法,您可以获取表的特定列:
YouModelName::get(['id', 'name']);
或者从laravel 5.4中,您也可以使用all()
方法来获取您选择的字段:
YourModelName::all('id', 'name');
可以同时使用上述两种方法get()
,all()
也可以同时使用where()
两种语法:
型号:: all()
YourModelName::all('id', 'name')->where('id',1);
型号:: get()
YourModelName::where('id',1)->get(['id', 'name']);
使用以下代码:-
$result = DB::Table('table_name')->select('column1','column2')->where('id',1)->get();
例如 -
$result = DB::Table('Student')->select('subject','class')->where('id',1)->get();
尽管最常用的方法是使用Model::select
,但它可能导致呈现出模型类中使用访问器方法定义的所有属性。因此,如果您在模型中定义属性:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Get the user's first name.
*
* @param string $value
* @return string
*/
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
}
然后使用:
TableName::select('username')->where('id', 1)->get();
它将输出带有first_name
和的集合username
,而不是仅包含用户名的集合。
如果需要特定的列pluck()
,最好单独使用,或结合使用select
- 更好。
TableName::select('username')->where('id', 1)->pluck('username');
要么
TableName::where('id', 1)->pluck('username');
//将返回仅包含username
值的集合
另外,(可选)用于->toArray()
将集合对象转换为数组。
你也可以用findOrFail()
这里的方法,很好用
如果未捕获到异常,则会将404 HTTP响应自动发送回用户。使用这些方法不会产生500错误时,无需编写显式检查以返回404响应。
ModelName::findOrFail($id, ['firstName', 'lastName']);
您可以使用以下查询:
Table('table')->select('name','surname')->where('id',1)->get();
使用App \ Table; ... Table :: where('id',1)-> get('name','surname');
如果没有地方
表格::: all('name','surname');