php - español - ORM elocuente laravel 5 Obtener matriz de identificadores
eloquent laravel 5 español (6)
Desde una
Collection
, otra forma de hacerlo sería:
$collection->pluck(''id'')->toArray()
Esto devolverá una matriz indexada, perfectamente utilizable por laravel en una consulta
whereIn()
, por ejemplo.
Estoy usando Eloquent ORM laravel 5.1, quiero devolver una matriz de identificadores mayores que 0, mi modelo llamado
test
.
Yo he tratado :
$test=test::select(''id'')->where(''id'' ,''>'' ,0)->get()->toarray();
Vuelve:
Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) )
Pero quiero que el resultado esté en una matriz simple como:
Array ( 1,2 )
La respuesta correcta a eso es la
lists
métodos, es muy simple así:
$test=test::select(''id'')->where(''id'' ,''>'' ,0)->lists(''id'');
¡Saludos!
Podrías usar
lists()
:
test::where(''id'' ,''>'' ,0)->lists(''id'')->toArray();
NOTA:
Mejor si define sus modelos en formato
Studly Case
, por ejemplo,
Test
.
test::where(''id'' ,''>'' ,0)->get(''id'');
ACTUALIZACIÓN: (Para versiones> = 5.2)
El método
lists()
fue
desaprobado
en las nuevas versiones
>= 5.2
, ahora puede usar el método
pluck()
lugar:
test::where(''id'' ,''>'' ,0)->pluck(''id'')->toArray();
NOTA: Si necesita una cadena , por ejemplo en una cuchilla , puede usar la función sin la parte toArray () , como:
test::where(''id'' ,''>'' ,0)->pluck(''id'');
Puede usar el método
all()
lugar del método
toArray()
(ver más:
documentación de laravel
):
test::where(''id'' ,''>'' ,0)->pluck(''id'')->all(); //returns array
Si necesita una
string
, puede usarla sin el
toArray()
adjunto
toArray()
:
test::where(''id'' ,''>'' ,0)->pluck(''id''); //returns string
También puede usar el método all () para obtener una matriz de atributos seleccionados.
$test=test::select(''id'')->where(''id'' ,''>'' ,0)->all();
Saludos
leer sobre el método lists ()
$test=test::select(''id'')->where(''id'' ,''>'' ,0)->lists(''id'')->toArray()