español php laravel model eloquent laravel-5.1

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 .

También get() usar get() :

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()