Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/eloquent»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}}») |
|||
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}} | {{:Usuario:ManuelRomero/micursos/Laravel/baseDatos/nav}} | ||
+ | ===Qué es Eloquent=== | ||
+ | *Es 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 | ||
+ | ;Creando un modelo | ||
+ | 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()''''' | ||
+ | <source lang=php> | ||
+ | $usuarios = Ususario::all(); | ||
+ | foreach( $usuarios as $usuario){ | ||
+ | echo $usuario->nombre; | ||
+ | } | ||
+ | </source> | ||
+ | Sería equivalente a hacer | ||
+ | <source lang=php> | ||
+ | |||
+ | Select * from usuarios; | ||
+ | </source> | ||
+ | *Obetener un solo registro (necesitamos para ello usar compos únicos como $id | ||
+ | <source lang = php> | ||
+ | $id=58; | ||
+ | $usuario = Ususario::find($id); | ||
+ | </source> | ||
+ | *Obtener solo algún campo de la tabla | ||
+ | <source lang = php> | ||
+ | $id=58; | ||
+ | $usuario = Ususario::find($id, array('nombre')); | ||
+ | echo "Usuario encontrado ". $usuario->nombre; | ||
+ | </source>8 | ||
+ | *Obetener registros que cumplan una condicion '''''where(..)->get() | ||
+ | <source lang=php> | ||
+ | $usuarios = Ususario::where('edad','>',18)->get(); | ||
+ | foreach( $usuarios as $usuario){ | ||
+ | echo $usuario->nombre; | ||
+ | } | ||
+ | </source> | ||
+ | *Podemos usar una serie de métodos mágicos del tipo whereNombreColumna | ||
+ | <source lang=php> | ||
+ | //Todos los usuarios de 20 años | ||
+ | $usuarios = Ususario::whereEdad(20)->get(); | ||
+ | foreach( $usuarios as $usuario){ | ||
+ | echo $usuario->nombre; | ||
+ | } | ||
+ | </source> | ||
+ | ;Insertar registros '''''save()''''' | ||
+ | *Para insertar registros simplemente asignaremos valor a cada campo del modelo y usaremos el método save | ||
+ | <source lang=php> | ||
+ | $usuario = new Ususario; | ||
+ | |||
+ | $user->nombre = 'Maria'; | ||
+ | $user->edad = 30; | ||
+ | $user->direccion = 'Casa de Maria'; | ||
+ | $user->save(); | ||
+ | |||
+ | </source> | ||
+ | ;Borrar registros '''''delete()''''' | ||
+ | *Para borrar un lo localizamos y usamos el método delete() | ||
+ | $user = User::find(1); | ||
+ | |||
+ | $user->delete(); | ||
+ | <source lang=php> | ||
+ | $usuario = Usuario::find(1);//Localizamos el usuario con id 1 | ||
+ | |||
+ | $user->delete(); | ||
+ | |||
+ | </source> |
Revisión de 19:32 6 feb 2015
Qué es Eloquent
- Es 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
- Creando un modelo
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();