2016-07-03 8 views
20

позволяет сказать, что у меня есть 7 столбцов в таблице, и я хочу, чтобы выбрать только два из них, что-то вроде этогокак выбрать определенные столбцы в Laravel красноречивого

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

В Laravel красноречивой модели она может выглядеть, как это

, но я думаю, что это выражение выберет ВСЕ столбцы, где id равно 1, и я хочу только два столбца (имя, фамилия). как выбрать только два столбца?

ответ

38

Вы можете сделать это следующим образом:

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

давайте предположим, что я хочу выбрать каждое поле, ожидающее одного, как я могу это сделать –

+0

Прежде всего, если у вас есть вопрос, спросите один. И для вашего случая - просто укажите все столбцы вместо того, который вы не хотите включать. Это так просто. –

+0

нет другого метода для этого, не говоря обо всех столбцах –

2

Вы можете использовать Table::select ('name', 'surname')->where ('id', 1)->get().

Имейте в виду, что при выборе только определенных полей вам нужно будет сделать еще один запрос, если вы в конечном итоге получите доступ к этим другим полям позже в запросе (это может быть очевидно, просто нужно включить это оговорку). Включение поля id обычно является хорошей идеей, поэтому laravel знает, как писать все обновления, которые вы делаете с экземпляром модели.

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

Также Model::all(['id'])->toArray() он будет получать только идентификатор как массив.

1

Прежде всего вам нужно создать модель, представляющую эту таблицу, а затем использовать нижепосредственный способ получения данных только из двух полей.

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

Используя метод all(), мы можем выбрать конкретные столбцы из таблицы, как показано ниже.

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

Примечание: Laravel 5,4

0

запрос будет выглядеть так: Table ('стол') -> выберите ('имя', 'фамилия') -> где ('идентификатор' , 1) -> получить();