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