¿Qué es Eloquent ORM y para qué sirve?
\n\nEloquent ORM (Object-Relational Mapping) es una biblioteca integrada para trabajar con bases de datos en el framework PHP Laravel. Proporciona una forma elegante e intuitiva de interactuar con bases de datos relacionales (MySQL, PostgreSQL, SQLite, SQL Server) utilizando el patrón Active Record.
\n\n¿Para qué sirve Eloquent?
\n- \n
- Abstracción de SQL: En lugar de escribir consultas SQL en bruto, trabajas con objetos PHP. Esto hace que el código sea más limpio, legible y seguro. \n
- Active Record: Cada modelo de Eloquent representa una tabla en la base de datos. Una instancia del modelo es una fila en esa tabla. Puedes leer, modificar y guardar datos simplemente trabajando con las propiedades del objeto. \n
- Protección contra inyección SQL: Eloquent utiliza PDO (PHP Data Objects) con consultas preparadas, lo que escapa automáticamente la entrada del usuario. \n
- Relaciones: Define y utiliza fácilmente relaciones entre tablas (uno a uno, uno a muchos, muchos a muchos, etc.). \n
- Colecciones: Los resultados de las consultas se devuelven como colecciones, objetos potentes que proporcionan muchos métodos útiles para procesar datos (map, filter, reduce, pluck, etc.). \n
- Mutadores y Accesores: Permiten transformar datos al guardarlos (mutadores) o al leerlos (accesores) de la base de datos. \n
Eloquent no es solo una biblioteca, es una parte fundamental del ecosistema de Laravel. Comprender Eloquent es necesario para un desarrollo eficaz en este framework.
\n\nInstalación
\n\nEloquent ORM se instala automáticamente junto con el framework Laravel. Si creas un nuevo proyecto Laravel, Eloquent ya está listo para usar.
\n\nInstalación a través de Composer (si usas Laravel):
\ncomposer create-project laravel/laravel example-app\ncd example-app\n\nInstalación de Eloquent sin Laravel (Standalone):
\nPuedes usar Eloquent fuera de Laravel, por ejemplo, en tu propio proyecto. Para ello, necesitarás instalar el paquete illuminate/database y configurar la conexión a la base de datos.
composer require illuminate/database\ncomposer require illuminate/events // Para trabajar con eventos de modelos (opcional)\n\nEjemplo de configuración de conexión (standalone):
\n<?php\nrequire 'vendor/autoload.php';\n\nuse Illuminate\\Database\\Capsule\\Manager as Capsule;\n\n$capsule = new Capsule;\n\n$capsule->addConnection([\n 'driver' => 'mysql',\n 'host' => 'localhost',\n 'database' => 'your_database',\n 'username' => 'your_username',\n 'password' => 'your_password',\n 'charset' => 'utf8',\n 'collation' => 'utf8_unicode_ci',\n 'prefix' => '',\n]);\n\n// Configurar la instancia global de Eloquent\n$capsule->setAsGlobal();\n\n// Iniciar Eloquent\n$capsule->bootEloquent();\n\n\nInicio rápido con ejemplo de código
\n\nSupongamos que tenemos una tabla users en la base de datos. Creemos un modelo Eloquent para trabajar con ella.
Paso 1: Creación del modelo
\nEn Laravel, los modelos generalmente se almacenan en app/Models. Creemos el archivo User.php:
<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n // Eloquent vinculará automáticamente este modelo con la tabla 'users'\n // El nombre de la tabla se determina por el nombre de la clase en plural (snake_case)\n // Si la tabla se llama de otra manera, especifica la propiedad $table\n // protected $table = 'my_users';\n\n // Especifica qué campos se pueden asignar masivamente (para protección contra mass-assignment)\n protected $fillable = ['name', 'email', 'password'];\n}\ También en la biblioteca
gRPC para Go (Golang): bibliotecas, ejemplos y guía práctica
Caché en TypeScript: Redis y otras soluciones para Node.js
Java Image I/O API: redimensionar y recortar imágenes | Guía
Lodash para JavaScript (Node.js): guía completa con ejemplos