Красноречивый ORM laravel 5 Получить массив идентификаторов
Я использую красноречивый ORM laravel 5.1, я хочу вернуть массив идентификаторов больше 0, моя модель называется test
.
Я пробовал:
$test=test::select('id')->where('id' ,'>' ,0)->get()->toarray();
Он возвращает:
Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) )
Но я хочу, чтобы результат был в простом массиве, например:
Array ( 1,2 )
39
4 answers
Вы могли бы использовать lists()
:
test::where('id' ,'>' ,0)->lists('id')->toArray();
ПРИМЕЧАНИЕ: Лучше, если вы определяете свои модели в формате Studly Case
, например Test
.
Вы также можете использовать get()
:
test::where('id' ,'>' ,0)->get('id');
ОБНОВЛЕНИЕ: ( Для версий >= 5.2)
В lists()
метод был устаревший в новых версиях >= 5.2
теперь вы можете использовать pluck()
метод вместо этого:
test::where('id' ,'>' ,0)->pluck('id')->toArray();
104
Author: Zakaria Acharki, 2018-07-28 17:31:32
Прочитайте о методе lists()
$test=test::select('id')->where('id' ,'>' ,0)->lists('id')->toArray()
4
Author: Amir Bar, 2015-12-16 09:32:13
Правильный ответ на это - метод lists
, он очень прост, вот так:
$test=test::select('id')->where('id' ,'>' ,0)->lists('id');
С уважением!
3
Author: Radames E. Hernandez D.L.R., 2017-05-29 16:59:06
Вы также можете использовать метод all() для получения массива выбранных атрибутов.
$test=test::select('id')->where('id' ,'>' ,0)->all();
С уважением
0
Author: Narendra Ojha, 2017-07-14 08:30:18