2016-07-03 46 views
20

Diciamo che ho 7 colonne in tabella, e voglio selezionare solo due di loro, qualcosa di similecome selezionare colonne specifiche in laravel eloquente

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

In laravel modello eloquente essa può assomigliare questo

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

ma suppongo che questa espressione selezionerà TUTTE le colonne in cui id è uguale a 1 e desidero solo due colonne (nome, cognome). come selezionare solo due colonne?

risposta

38

Si può fare in questo modo:

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

supponiamo di voler selezionare ogni campo aspettarsi uno come posso fare quello –

+0

Prima di tutto, quando hai domande, chiedi a uno. E per il tuo caso, menziona solo tutte le colonne anziché quella che non vuoi includere. È così facile –

+0

non esiste alcun altro metodo per farlo senza menzionare tutte le colonne –

2

È possibile utilizzare Table::select ('name', 'surname')->where ('id', 1)->get().

Ricordare che quando si seleziona solo determinati campi, è necessario effettuare un'altra query se si finisce per accedere a quegli altri campi più avanti nella richiesta (che potrebbe essere ovvio, volevo solo includere tale avvertenza). Includere il campo id è di solito una buona idea, quindi laravel sa come scrivere gli aggiornamenti che si fanno all'istanza del modello.

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

Inoltre Model::all(['id'])->toArray() si preleverà solo id come matrice.

1

Per prima cosa è necessario creare un modello che rappresenti quella tabella e quindi utilizzare il modo Eloquent di seguito per recuperare i dati di soli 2 campi.

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

Utilizzando il metodo all(), è possibile selezionare colonne particolari dalla tabella come mostrato di seguito.

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

Nota: laravel 5.4

0

La query sarebbe come questo: Table ('table') -> selezionare ('name', 'cognome') -> dove ('id' , 1) -> get();

Problemi correlati