Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/eloquent»
De WikiEducator
Línea 20: | Línea 20: | ||
*Por defecto se asumen una serie de valores que se pueden modificar en el modelo | *Por defecto se asumen una serie de valores que se pueden modificar en el modelo | ||
*Para ello habría que establecer valores a otros atributos | *Para ello habría que establecer valores a otros atributos | ||
− | + | }} | |
;Nombre de tabla | ;Nombre de tabla | ||
{| style="border:1px solid #B8C7D9; text-align:left; background:#f5faff; font-size: 95%;" | {| style="border:1px solid #B8C7D9; text-align:left; background:#f5faff; font-size: 95%;" | ||
Línea 35: | Línea 35: | ||
'''protected $table='otroNombreTabla''' | '''protected $table='otroNombreTabla''' | ||
|- | |- | ||
+ | |||
+ | |} | ||
+ | ;Clave primaria | ||
+ | {| style="border:1px solid #B8C7D9; text-align:left; background:#f5faff; font-size: 95%;" | ||
+ | |- | ||
+ | | width="25%" style="background: #cedff2; padding: 3px 5px; text-align:center;"| | ||
+ | | style="background: #cedff2; padding: 3px 5px; text-align:center;"|'''Por defecto''' | ||
+ | | width="50%" style="background: #cedff2; padding: 3px 5px; text-align:center;"|'''Atributo para modificar''' | ||
+ | |- | ||
+ | | width="25%" style="background: #cedff2; padding: 3px 5px; text-align:center;"| | ||
+ | Nombre|id|$primaryKey| | ||
+ | | width="25%" style="background: #cedff2; padding: 3px 5px; text-align:center;"| | ||
+ | tipo|int|$keyType = string| | ||
+ | | width="25%" style="background: #cedff2; padding: 3px 5px; text-align:center;"| | ||
+ | propiedad|autoincrementint|$autoincrement=false| | ||
|} | |} | ||
− | |||
Revisión de 08:05 26 feb 2018
Eloquent
- Eloquent es un modelo objeto-Relacional ORM que se implementa en laravel.
- Esta una clase que nos va a permitir trabajar de forma sencilla y muy productiva con una base de datos
- Para usarlo partimos de la idea de que cada tabla de la base de datos con la que trabajamos tiene un modelo creado en nuestro proyecto .
- Cada modelo permite trabajar con esa tabla.
- Los modelos los crearemos en la carpeta apt/models
- Nombre de tabla
Modelo | Tabla | Atributo para modificar |
Alumno |
alumnos |
protected $table='otroNombreTabla |
- Clave primaria
Por defecto | Atributo para modificar | |
Nombre|id|$primaryKey| |
tipo|int|$keyType = string| |
propiedad|autoincrementint|$autoincrement=false| |
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();