Creación y guardado de datos
// Crear y guardar
$user = new User;
$user->name = 'Juan';
$user->email = 'juan@example.com';
$user->save();
// Crear directamente
User::create([
'name' => 'Juan',
'email' => 'juan@example.com'
]);
Lectura de datos
User::all(); // Obtener todos
User::find(1); // Buscar por ID
User::where('email', 'juan@example.com')->first(); // Primer coincidencia
User::where('active', 1)->get(); // Coincidencias múltiples
User::findOrFail(1); // Lanza 404 si no existe
User::firstOrFail(); // Similar a findOrFail pero sin ID
Actualización de datos
$user = User::find(1);
$user->name = 'Pedro';
$user->save();
// O directamente
User::where('id', 1)->update(['name' => 'Pedro']);
Eliminación de datos
User::destroy(1); // Por ID
User::where('active', 0)->delete(); // Varios
$user = User::find(1);
$user->delete(); // Individual
Consultas avanzadas
User::where('age', '>', 18)->get();
User::orderBy('created_at', 'desc')->get();
User::limit(10)->get();
User::select('id', 'name')->get();
User::whereBetween('age', [18, 30])->get();
User::whereIn('id', [1,2,3])->get();
Relaciones Eloquent
// Uno a muchos
$user->posts; // Relación definida en el modelo
// Muchos a muchos
$user->roles()->attach($roleId);
$user->roles()->sync([1, 2]);
$user->roles()->detach($roleId);
// Cargar relaciones
User::with('posts')->get();
Paginar resultados
User::paginate(10); // Paginación simple
User::simplePaginate(10); // Más ligera
Soft deletes
use Illuminate\Database\Eloquent\SoftDeletes;
User::withTrashed()->get(); // Incluye eliminados
User::onlyTrashed()->get(); // Solo eliminados
$user->restore(); // Restaurar
$user->forceDelete(); // Eliminar permanentemente
Scopes (Alcances personalizados)
// Modelo User
public function scopeActive($query) {
return $query->where('active', 1);
}
// Uso
User::active()->get();
No hay comentarios:
Publicar un comentario