que plantillas motor index gratis for entre diferencias descargar content ciclo laravel laravel-5 orm eloquent

plantillas - Cómo seleccionar columnas específicas en laravel elocuente



laravel foreach index (17)

Digamos que tengo 7 columnas en la tabla, y quiero seleccionar solo dos de ellas, algo como esto

SELECT `name`,`surname` FROM `table` WHERE `id` = ''1'';

En el modelo elocuente laravel puede verse así

Table::where(''id'', 1)->get();

pero supongo que esta expresión seleccionará TODAS las columnas donde id es igual a 1, y solo quiero dos columnas (nombre, apellido). ¿Cómo seleccionar solo dos columnas?


Al usar el método all () podemos seleccionar columnas particulares de la tabla como se muestra a continuación.

ModelName::all(''column1'', ''column2'', ''column3'');

Nota : Laravel 5.4


Desde laravel 5.3 solo usando el método get() puede obtener columnas específicas de su tabla:

ModelName::findOrFail($id, [''firstName'', ''lastName'']);

O desde laravel 5.4 también puede usar el método all() para obtener los campos de su elección:

ModelName::find($id_of_the_record, [''column_name''])->toArray()[''column_name''];

con los dos métodos anteriores get() o all() también puede usar where() pero la sintaxis es diferente para ambos:

Modelo :: todos ()

YouModelName::get([''id'', ''name'']);

Modelo :: get ()

YourModelName::all(''id'', ''name'');


Obtener el valor de una columna:

Table_Name::find($id)->column_name;

Incluso puedes usar este método con la cláusula where:

Table_Name::where(''id'',$id)->first()->column_name;


Primero debe crear un Modelo, que represente esa Tabla y luego usar la siguiente manera Elocuente para obtener los datos de solo 2 campos.

Model::where(''id'', 1) ->pluck(''name'', ''surname'') ->all();


Puede usar Table::select (''name'', ''surname'')->where (''id'', 1)->get () .

Tenga en cuenta que al seleccionar solo ciertos campos, tendrá que hacer otra consulta si termina accediendo a esos otros campos más adelante en la solicitud (eso puede ser obvio, solo quería incluir esa advertencia). Incluir el campo id suele ser una buena idea para que laravel sepa cómo escribir las actualizaciones que realice en la instancia del modelo.


Puede usar get () y all ()

ModelName::where(''a'', 1)->get([''column1'',''column2'']);


Puede usar la siguiente consulta:

YourModelName::all(''id'', ''name'')->where(''id'',1);


Puedes hacerlo así:

Table::select(''name'',''surname'')->where(''id'', 1)->get();


Si bien el enfoque más común es usar Model::select , puede causar la representación de todos los atributos definidos con métodos de acceso dentro de las clases de modelo. Entonces, si define un atributo en su modelo:

<?php namespace App; use Illuminate/Database/Eloquent/Model; class User extends Model { /** * Get the user''s first name. * * @param string $value * @return string */ public function getFirstNameAttribute($value) { return ucfirst($value); } }

Y luego use: TableName::select(''username'')->where(''id'', 1)->get();

Producirá una colección con first_name y username , en lugar de solo nombre de usuario.

Mejor use pluck() , solo u opcionalmente en combinación con select , si desea columnas específicas.

TableName::select(''username'')->where(''id'', 1)->pluck(''username'');

o

TableName::where(''id'', 1)->pluck(''username''); // eso devolvería la colección que consta solo de valores de username de username

Además, opcionalmente, use ->toArray() para convertir el objeto de colección en una matriz.


Si desea obtener una sola fila y de esa fila una sola columna, un código de línea para obtener el valor de la columna específica es utilizar el método find() junto con la especificación de la columna que desea recuperar.

Aquí está el código de muestra:

Table(''table'')->select(''name'',''surname'')->where(''id'',1)->get();


También Model::all([''id''])->toArray() solo buscará id como matriz.


También puedes usar find() así:

ModelName::find($id, [''name'', ''surname'']);

La variable $id puede ser una matriz en caso de que necesite recuperar varias instancias del modelo.


También puedes usar pluck.

Model::where(''id'',1)->pluck(''column1'', ''column2'');


Use el siguiente código: -

$result = DB::Table(''table_name'')->select(''column1'',''column2'')->where(''id'',1)->get();


también puedes usar el método findOrFail() aquí es bueno usar

Si no se detecta la excepción, se envía automáticamente una respuesta HTTP 404 al usuario. No es necesario escribir comprobaciones explícitas para devolver respuestas 404 cuando el uso de este método no da un error 500.

YourModelName::where(''id'',1)->get([''id'', ''name'']);


->get() al igual que ->all() (y ->first() etc.) puede tomar los campos que desea traer de vuelta como parámetros;

->get/all([''column1'',''column2''])

column1 vuelta la colección pero solo con column1 y column2


Table::where(''id'', 1)->get([''name'',''surname'']);