如何在laravel雄辩中选择特定的列

时间:2016-07-03 18:05:26

标签: laravel laravel-5 orm eloquent

假设我在表格中有7列,我只想选择其中的两列,就像这样

SELECT `name`,`surname` FROM `table` WHERE `id` = '1';

在laravel eloquent模型中,它可能看起来像这样

Table::where('id', 1)->get();

但我想这个表达式会选择id等于1的所有列,而我只想要两列(name,surname)。如何只选择两列?

20 个答案:

答案 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'])

只会带回column1column2

来带回收藏集

答案 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');