假设我在表格中有7列,我只想选择其中的两列,就像这样
SELECT `name`,`surname` FROM `table` WHERE `id` = '1';
在laravel eloquent模型中,它可能看起来像这样
Table::where('id', 1)->get();
但我想这个表达式会选择id等于1的所有列,而我只想要两列(name,surname)。如何只选择两列?
答案 0 :(得分:139)
你可以这样做:
Table::select('name','surname')->where('id', 1)->get();
答案 1 :(得分:40)
public class HistoryAdapter{
private ArrayList<Article> articleList;
public HistoryAdapter(......){
articleList = new ArrayList<>();
.....
}
.....
.....
public void addItem(Article article){
articleList.add(article);
notifyDataSetChanged();
}
}
答案 2 :(得分:24)
通过使用all()方法,我们可以从表中选择特定的列,如下所示。
ModelName::all('column1', 'column2', 'column3');
注意:Laravel 5.4
答案 3 :(得分:15)
您也可以像这样使用find()
:
ModelName::find($id, ['name', 'surname']);
$id
变量可以是一个数组,以防您需要检索模型的多个实例。
答案 4 :(得分:11)
同样Model::all(['id'])->toArray()
它只会将id作为数组获取。
答案 5 :(得分:8)
首先需要创建一个表示该表的模型,然后使用以下Eloquent方式获取仅2个字段的数据。
Model::where('id', 1)
->pluck('name', 'surname')
->all();
答案 6 :(得分:4)
如果您想从数据库中获取单个值
Model::where('id', 1)->value('name');
答案 7 :(得分:4)
您可以使用get()以及all()
ModelName::where('a', 1)->get(['column1','column2']);
答案 8 :(得分:3)
use App\Table;
// ...
Table::where('id',1)->get('name','surname');
如果没有地方
Table::all('name','surname');
答案 9 :(得分:3)
使用以下代码:-
<table class="mytable">
<thead>
<tr>
<th>Format</th>
</tr>
</thead>
<tbody>
<tr>
<td>Something here</td>
</tr>
</tbody>
</table>
答案 10 :(得分:2)
您可以使用Table::select ('name', 'surname')->where ('id', 1)->get ()
。
请记住,在仅选择某些字段时,如果您最后在请求中访问其他字段,则必须进行另一个查询(这可能很明显,只是想包含该警告)。包含id字段通常是一个好主意,所以laravel知道如何写回你对模型实例做的任何更新。
答案 11 :(得分:2)
你也可以使用。
Model::where('id',1)->pluck('column1', 'column2');
答案 12 :(得分:0)
->get()
很像->all()
(和->first()
等。)可以将您想带回来的字段作为参数;
->get/all(['column1','column2'])
只会带回column1
和column2
答案 13 :(得分:0)
您还可以在这里使用findOrFail()
方法很好用
如果未捕获到异常,则会将404 HTTP响应自动发送回用户。使用这些方法不会产生500错误时,无需编写显式检查以返回404响应。
ModelName::findOrFail($id, ['firstName', 'lastName']);
答案 14 :(得分:0)
如果要从该行的单列中获取单行,则要获取特定列的值的一行代码是使用find()
方法,同时指定要检索的列。
这是示例代码:
ModelName::find($id_of_the_record, ['column_name'])->toArray()['column_name'];
答案 15 :(得分:0)
仅使用get()
方法从laravel 5.3中可以获得表的特定列:
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']);
答案 16 :(得分:0)
获取一列的值:
Table_Name::find($id)->column_name;
即使您可以将此方法与where子句一起使用:
Table_Name::where('id',$id)->first()->column_name;
答案 17 :(得分:0)
ModelName :: find($ id,['name','surname']);
答案 18 :(得分:0)
您可以使用以下查询:
Table('table')->select('name','surname')->where('id',1)->get();
答案 19 :(得分:-2)
首先选择表并将其存储在变量中
$table = Table::where('id', 1)->get();
然后返回并使用键和表值像这样的数组
return ['name'=>$table->name,'surname'=> $table->surnam];
laravel返回带有名称和姓氏键的json;
Table::where('id',1)->pluck('name','surname');