php - update - pluck laravel
Laravel 5.2: el método pluck() devuelve una matriz (4)
En Laravel 5.1+, puede usar el valor () en lugar de arrancar.
Para obtener la primera ocurrencia, puede usar
DB::table(''users'')->value(''name'');
o usar,
DB::table(''users'')->where(''id'', 1)->pluck(''name'')->first();
Estoy tratando de actualizar mi proyecto L5.1 -> L5.2. En la guía de actualización hay una cosa que no está clara para mí:
El método de
lists
en los objetos Colección, Generador de consultas y Generador de consultas elocuentes ha cambiado de nombre parapluck
. La firma del método sigue siendo la misma.
Está bien, cambiar el nombre refactoting de
lists()
a
pluck()
no es un problema.
Pero, ¿qué pasa con el útil método
pluck()
que estaba en L5.0 y L5.1?
De la documentación 5.0 :
Recuperando una sola columna de una fila
$name = DB::table(''users'')->where(''name'', ''John'')->pluck(''name'');
¿Cuál es la alternativa para el viejo método
pluck()
en L5.2?
ACTUALIZAR:
Ejemplo:
var_dump(DB::table(''users'')->where(''id'', 1)->pluck(''id''));
L5.1:
// int(1)
L5.2:
// array(1) { [0]=> int(1) }
En el ejemplo original, ¿por qué no usar el método select () en su consulta de base de datos?
$name = DB::table(''users'')->where(''name'', ''John'')->select("id");
Esto será más rápido que usar un marco PHP, ya que utilizará la consulta SQL para hacer la selección de filas por usted. Para las colecciones ordinarias, no creo que esto aplique, pero como estás usando una base de datos ...
Larvel 5.3: Especificar una cláusula de selección
La alternativa actual para
pluck()
es
value()
.
laravel pluck devuelve una matriz
si su consulta es:
$name = DB::table(''users'')->where(''name'', ''John'')->pluck(''name'');
entonces la matriz es así (la clave es el índice del elemento. valor incrementado automáticamente):
[
1 => "name1",
2 => "name2",
.
.
.
100 => "name100"
]
pero si te gusta esto:
$name = DB::table(''users'')->where(''name'', ''John'')->pluck(''name'',''id'');
entonces la clave es el índice real en la base de datos.
key||value
[
1 => "name1",
2 => "name2",
.
.
.
100 => "name100"
]
Puede establecer cualquier valor como clave.