laravel - sirve - Eloquent obtiene solo una columna como matriz
pluck laravel para que sirve (5)
Creo que puedes lograrlo usando el siguiente código
Model::get([''ColumnName''])->toArray();
¿Cómo obtener solo una columna como una matriz dimensional en laravel 5.2 usando elocuente?
Yo he tratado:
$array = Word_relation::select(''word_two'')->where(''word_one'', $word_id)->get()->toArray();
pero este lo da como una matriz de 2 dimensiones como:
array(2) {
[0]=>
array(1) {
["word_one"]=>
int(2)
}
[1]=>
array(1) {
["word_one"]=>
int(3)
}
}
pero quiero obtenerlo como:
array(2) {
[0]=>2
[1]=>3
}
Eso se puede hacer en resumen como:
Model::pluck(''column'')
donde modelo es el modelo, como modelo de
User
y columna como nombre de columna como
id
si lo haces
User::pluck(''id'') // [1,2,3, ...]
y, por supuesto, puede tener otras cláusulas como cláusula
where
antes de arrancar
Me encontré con esta pregunta y pensé que aclararía que el método lists () de un objeto constructor elocuente se depreció en Laravel 5.2 y se reemplazó con pluck ().
// <= Laravel 5.1
Word_relation::where(''word_one'', $word_id)->lists(''word_one'')->toArray();
// >= Laravel 5.2
Word_relation::where(''word_one'', $word_id)->pluck(''word_one'')->toArray();
Estos métodos también se pueden invocar en una Colección, por ejemplo
// <= Laravel 5.1
$collection = Word_relation::where(''word_one'', $word_id)->get();
$array = $collection->lists(''word_one'');
// >= Laravel 5.2
$collection = Word_relation::where(''word_one'', $word_id)->get();
$array = $collection->pluck(''word_one'');
Puedes usar el método de
pluck
:
Word_relation::where(''word_one'', $word_id)->pluck(''word_two'')->toArray();
Para obtener más información sobre qué métodos están disponibles para usar con la colección, puede consultar la Documentación de Laravel .
Si recibe varias entradas, el método correcto se llama lists .
Word_relation::select(''word_two'')->where(''word_one'', $word_id)->lists(''word_one'')->toArray();