Jenner Acosta Diaz
Laravel 10

Generador de consultas de eloquent

Laravel Eloquent proporciona una sintaxis de consulta fluida que te permite construir consultas de bases de datos de forma legible y fácil de entender. A continuación, te mostraré algunos ejemplos de cómo utilizar el generador de consultas de Eloquent:

  1. Obtener todos los registros de una tabla:
$users = DB::table('users')->get();
  1. Obtener registros con condiciones:
$users = DB::table('users')
            ->where('age', '>', 18)
            ->orderBy('name')
            ->get();
  1. Obtener un solo registro:
$user = DB::table('users')
            ->where('email', 'john@example.com')
            ->first();
  1. Obtener un valor específico de un registro:
$name = DB::table('users')
            ->where('id', 1)
            ->value('name');
  1. Insertar un nuevo registro:
DB::table('users')->insert([
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'password' => bcrypt('password'),
]);
  1. Actualizar registros:
DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'New Name',
    ]);
  1. Eliminar registros:
DB::table('users')
    ->where('id', 1)
    ->delete();

Estos son solo ejemplos básicos de cómo utilizar el generador de consultas de Eloquent en Laravel. Puedes encadenar múltiples métodos para construir consultas más complejas y aprovechar las numerosas funciones y operadores de consulta que Eloquent ofrece.

Es importante tener en cuenta que al usar el generador de consultas directamente, no se utilizarán las capacidades de mapeo de objetos y las relaciones definidas en los modelos. Si deseas aprovechar todas las funcionalidades de Eloquent, es recomendable utilizar los modelos y los métodos proporcionados por Eloquent en lugar del generador de consultas directo (DB::table()).

Usando tinke

Usando tinker: php artisan tinker

>>> use App\Models\Curso;

>>> $cursos = Curso::all();

>>> $cursos = Curso::where('categoria', 'Diseño web')->get();

>>> $cursos = Curso::where('categoria', 'Diseño web')->orderBy('id', 'desc')->get();

>>> $cursos = Curso::where('categoria', 'Diseño web')->orderBy('name', 'asc')->get();

>>> $cursos = Curso::where('categoria', 'Diseño web')->orderBy('name', 'asc')->first();

>>> $cursos = Curso::select('name', 'description')->get();

>>> $cursos = Curso::select('name as title', 'description')->get();

>>> $cursos = Curso::select('name as title', 'description')->take(5)->get();

? get() siempre devuelve un arreglo, una colección de objetos.

? Curso::find(5) es equivalente a Curso::where('id', 5)->first()  

? where() puede contener consultas más complejas con =, <>, <, <=, >, >= y like con %:

      where('name', 'like', '% dorime %')