with updateorcreate update meaning espaƱol create collection colecciones laravel-4 query-builder

laravel-4 - meaning - updateorcreate laravel



Generador de consultas DB toArray() laravel 4 (7)

La forma más sencilla es usar laravel toArray function en sí misma:

$result = array_map(function ($value) { return $value instanceof Arrayable ? $value->toArray() : $value; }, $result);

Estoy tratando de convertir una consulta en una matriz con el método toArray() pero no funciona para el generador de consultas. ¿Alguna idea para convertirlo?

Ejemplo

DB::table(''user'')->where(''name'',=,''Jhon'')->get()->toArray();


Puedes hacer esto usando el generador de consultas. Solo usa SELECT en lugar de TABLE y GET.

DB::select(''select * from user where name = ?'',[''Jhon'']);

Notas: 1. Se permiten múltiples signos de interrogación. 2. El segundo parámetro debe ser una matriz, incluso si solo hay un parámetro. 3. Laravel limpiará automáticamente los parámetros, para que no tenga que hacerlo.

Más información aquí: http://laravel.com/docs/5.0/database#running-queries

Hmmmmmm, resulta que todavía me devuelve una clase estándar cuando no uso una cláusula where. Encontré esto ayudado

foreach($results as $result) { print_r(get_object_vars($result)); }

Sin embargo, get_object_vars no es recursivo, así que no lo use en $ resultados.


Si prefiere usar Query Builder en lugar de Eloquent, aquí están las soluciones.

$result = DB::table(''user'')->where(''name'',=,''Jhon'')->get();

Primera solucion

$array = (array) $result;

Segunda solucion

$array = get_object_vars($result);

Tercera solucion

$array = json_decode(json_encode($result), true);

espero que pueda ayudar


Y otra solucion

$objectData = DB::table(''user'') ->select(''column1'', ''column2'') ->where(''name'', ''='', ''Jhon'') ->get(); $arrayData = array_map(function($item) { return (array)$item; }, $objectData);

Es bueno en caso de que necesite solo varias columnas de la entidad.


prueba este

DB::table(''user'')->where(''name'',''Jhon'')->get();

simplemente quite el signo "=". . . .porque usted está tratando de colocar solo el nombre ''jhon''. . . . . . . Espero que te ayude. .



Tenga en cuenta que, aparentemente, la opción que se presenta a continuación ya no se admite desde Laravel 5.4 (gracias @Alex).

En Laravel 5.3 y más abajo, hay un método para establecer el modo de recuperación para consultas selectas.

En este caso, podría ser más eficiente hacer:

DB::connection()->setFetchMode(PDO::FETCH_ASSOC); $result = DB::table(''user'')->where(''name'',=,''Jhon'')->get();

De esa manera, no perderá tiempo creando objetos y luego volviéndolos a convertir en arreglos.