2016-07-03 14 views
20

powiedzmy Mam 7 kolumn w tabeli, a chcę wybrać tylko dwa z nich, coś w tymjak wybrać konkretne kolumn w laravel wymowny

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

W laravel wymowny modelu może ona wygląda tak

ale myślę, że to wyrażenie wybierze WSZYSTKIE kolumny, gdzie id wynosi 1, a ja chcę tylko dwie kolumny (imię, nazwisko). jak wybrać tylko dwie kolumny?

Odpowiedz

38

Można to zrobić tak:

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

Załóżmy, że chcę wybrać każde pole, spodziewając się jednego, jak to zrobić. –

+0

Po pierwsze, kiedy masz pytanie, zadaj je. A w twoim przypadku - wystarczy wspomnieć wszystkie kolumny zamiast tych, których nie chcesz uwzględnić. To takie proste. –

+0

nie ma żadnej innej metody robienia tego bez wspominania o wszystkich kolumnach –

2

Można użyć Table::select ('name', 'surname')->where ('id', 1)->get().

Należy pamiętać, że podczas wybierania tylko niektórych pól, będziesz musiał wykonać inne zapytanie, jeśli uzyskasz dostęp do tych innych pól później w żądaniu (może być oczywiste, po prostu chciałbyś uwzględnić to zastrzeżenie). Włączenie pola id jest zwykle dobrym pomysłem, więc laravel wie, jak zapisać wszelkie aktualizacje, które wykonujesz w instancji modelu.

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

Najpierw musisz utworzyć model, który reprezentuje tę tabelę, a następnie użyj poniższego Eokonwersyjnego sposobu pobierania danych tylko z 2 pól.

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

Używając metody all() możemy wybrać poszczególne kolumny z tabeli jak pokazano poniżej.

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

Uwaga: laravel 5,4

0

zapytania może być jak poniżej: Tabela ('stół'), -> wybrać ('nazwy', 'nazwiska'), ->, gdzie ('identyfikator' , 1) -> get();

Powiązane problemy