Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/eloquent»
De WikiEducator
Línea 2: | Línea 2: | ||
===Eloquent=== | ===Eloquent=== | ||
*Eloquent es un '''modelo objeto-Relacional''' '''''ORM''''' que se implementa en laravel. | *Eloquent es un '''modelo objeto-Relacional''' '''''ORM''''' que se implementa en laravel. | ||
− | * | + | *De esta forma se va a establecer una clase (el modelo) nos va a permitir trabajar de forma sencilla y muy productiva con una base de datos. |
− | * | + | *El modelo (la clase) se va a relacionar con una tabla en la bd. |
− | + | {{Tip| | |
− | *Los modelos | + | *Para utilizarlo cada tabla de la base de datos con la que trabajamos va a tener un modelo creado en nuestro proyecto . |
+ | }} | ||
+ | *Los modelos que cremos con '''''~artisan''''' se ubicaran en la carpeta de nuestro proyecto '''''app/Http''''' | ||
{{MRM_Actividad|Title=Crear un modelo (Alumno)| | {{MRM_Actividad|Title=Crear un modelo (Alumno)| | ||
php artisan make:model Alumno | php artisan make:model Alumno | ||
*Crea una clase llamada Alumno en el dir '''''app''''' | *Crea una clase llamada Alumno en el dir '''''app''''' | ||
+ | }} | ||
+ | *Como los diferentes comandos, tenemos una serie de opciones en su creación que podemos ver con la opción '''''-h''''' | ||
+ | {{MRM_Actividad|Title=Crear un modelo (Alumno)| | ||
+ | <source lang=bash> | ||
+ | php artisan .h make:model | ||
+ | </source> | ||
}} | }} | ||
− | {{ | + | |
− | php artisan make:model Alumno -- | + | |
+ | {{Actividad|Title=Crear un modelo (Alumno) con #migración, #seeder, #factory y #controlador resource | | ||
+ | php artisan make:model Alumno --all | ||
o | o | ||
− | php artisan make:model Alumno - | + | php artisan make:model Alumno -a |
}} | }} | ||
Revisión de 22:22 27 feb 2020
Eloquent
- Eloquent es un modelo objeto-Relacional ORM que se implementa en laravel.
- De esta forma se va a establecer una clase (el modelo) nos va a permitir trabajar de forma sencilla y muy productiva con una base de datos.
- El modelo (la clase) se va a relacionar con una tabla en la bd.
Tip:
- Para utilizarlo cada tabla de la base de datos con la que trabajamos va a tener un modelo creado en nuestro proyecto .
- Los modelos que cremos con ~artisan se ubicaran en la carpeta de nuestro proyecto app/Http
- Como los diferentes comandos, tenemos una serie de opciones en su creación que podemos ver con la opción -h
Class Usuario extends Eloquent{
}
- Por convención la clase Usuario interactuaría con el modelo usuarios
- Pero podemos especificar el nombre de la tabla que es un atributo de la clase
Class Usuario extends Eloquent{
protected $table = 'usuarios';
}
- Otras propiedades que podemos utilizar que tienen valor por defecto pero podemos modificar
Class Usuario extends Eloquent{
protected $table = 'usuarios'; protected $connection = 'tienda'; //Por defecto la conexión mysql de database.php protected $primaryKey = 'codigo'; //Por defecto id protected $timestamps = 'false'; //Por defecto true para actualizar los campos create_at update_up
}
- Como vemos el modelo da por supuesto que existen una serie de campos en la tabla, si no es así hay que especificarlo
Interactuando con la tabla
- Para obtener todos los registros de la tabla all()
$usuarios = Ususario::all(); foreach( $usuarios as $usuario){ echo $usuario->nombre; }
Sería equivalente a hacer
Select * from usuarios;
- Obetener un solo registro (necesitamos para ello usar compos únicos como $id
$id=58; $usuario = Ususario::find($id);
- Obtener solo algún campo de la tabla
$id=58; $usuario = Ususario::find($id, array('nombre')); echo "Usuario encontrado ". $usuario->nombre;
- Obetener registros que cumplan una condicion where(..)->get()
$usuarios = Ususario::where('edad','>',18)->get(); foreach( $usuarios as $usuario){ echo $usuario->nombre; }
- Podemos usar una serie de métodos mágicos del tipo whereNombreColumna
//Todos los usuarios de 20 años $usuarios = Ususario::whereEdad(20)->get(); foreach( $usuarios as $usuario){ echo $usuario->nombre; }
- Insertar registros save()
- Para insertar registros simplemente asignaremos valor a cada campo del modelo y usaremos el método save
$usuario = new Ususario; $user->nombre = 'Maria'; $user->edad = 30; $user->direccion = 'Casa de Maria'; $user->save();
- Borrar registros delete()
- Para borrar un lo localizamos y usamos el método delete()
$user = User::find(1);
$user->delete();
$usuario = Usuario::find(1);//Localizamos el usuario con id 1 $user->delete();