2016-07-03 17 views
20

auswählen kann sagen, ich habe sieben Spalten in der Tabelle, und ich möchte nur zwei von ihnen wählen, so etwas wie diesewie bestimmte Spalten in Laravel eloquent

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

In Laravel eloquent Modell kann es wie folgt aussieht

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

aber ich denke, dieser Ausdruck wählt alle Spalten, wo ID gleich 1 ist, und ich möchte nur zwei Spalten (Name, Nachname). Wie wählt man nur zwei Spalten?

Antwort

38

Sie können es wie folgt tun:

Table::select('name','surname')->where('id', 1)->get(); 
+0

nehmen wir an, ich möchte jedes Feld auswählen, wie man das tun kann –

+0

Zuerst, wenn Sie eine Frage haben, fragen Sie eine. Und für Ihren Fall - erwähnen Sie einfach alle Spalten statt der Spalte, die Sie nicht einschließen möchten. So einfach ist das. –

+0

gibt es keine andere Methode, um dies zu tun, ohne alle Spalten zu erwähnen –

2

Sie Table::select ('name', 'surname')->where ('id', 1)->get() verwenden können.

Denken Sie daran, dass Sie bei der Auswahl nur für bestimmte Felder eine weitere Abfrage erstellen müssen, wenn Sie später auf diese anderen Felder in der Anfrage zugreifen (das ist offensichtlich, wollte nur diesen Vorbehalt enthalten). Das Einschließen des ID-Feldes ist normalerweise eine gute Idee, daher weiß Laravel, wie Sie alle Aktualisierungen, die Sie an der Modellinstanz vornehmen, zurückschreiben.

15
Table::where('id', 1)->get(['name','surname']); 
5

Auch Model::all(['id'])->toArray() es wird nur ID als Array abrufen.

1

Zuerst müssen Sie ein Modell erstellen, das diese Tabelle darstellt, und dann die unten aufgeführte Methode verwenden, um die Daten von nur zwei Feldern abzurufen.

Model::where('id', 1) 
     ->pluck('name', 'surname') 
     ->all(); 
9

Mit der Methode all() können wir bestimmte Spalten aus der Tabelle auswählen, wie unten gezeigt.

ModelName::all('column1', 'column2', 'column3'); 

Hinweis: Laravel 5.4

0

Die Abfrage würde wie folgt sein: Tabelle ('table') -> wählen ('name', 'Name') -> where ('id' , 1) -> erhalten();