Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/eloquent»

De WikiEducator
Saltar a: navegación, buscar
(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;
8
  • 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();