Los Modelos son la forma para acceder a nuestra base de datos de nuestra aplicación de forma fácil, lógica y segmentada. Un modelo representa un objeto de la base de datos. Es decir, tenemos el modelo Usuario, dentro de nuestro modelo buscamos el usuario 1. Esto nos retornara el objeto entero del Usuario 1 el cual tenemos guardado en la base de datos.

Tenemos el modelo User creado por defecto en nuestra aplicación en App/User.php:

class User extends Model implements AuthenticatableContract,
                                   AuthorizableContract,
                                   CanResetPasswordContract
{
   use Authenticatable, Authorizable, CanResetPassword;
   /**
    * The database table used by the model.
    *
    * @var string
    */
   protected $table = 'users';
   /**
    * The attributes that are mass assignable.
    *
    * @var array
    */
   protected $fillable = ['name', 'email', 'password'];
   /**
    * The attributes excluded from the model's JSON form.
    *
    * @var array
    */
   protected $hidden = ['password', 'remember_token'];
}

 

Por ahora vamos a mirar la variable $table  la cual tenemos que tenerla en todos los modelos que creemos. En este caso este modelo extraerá los datos de la tabla users de nuestra BD.

Veamos unos ejemplos, Laravel usa Eloquent ORM, es un sistema para interactuar con la Base de Datos. Eloquent tiene unos métodos ‘predefinidos’ que nos ayudan a hacer consultas a nuestra base de datos, veamos unos ejemplos.

User::find(1)

 

Accedemos al método Find del Modelo (Que es una clase) User, el método find busca en la tabla predefinida en el modelo, en este caso users, la llave que le pasamos por parámetro, en este caso buscara el usuario con ID 1.

User::where('name', 'Marc')->first();
User::where('name', 'Marc')->get();

 

A continuación tenemos los métodos Where, First y Get. El método where es para hacer búsquedas en nuestra base de datos de campos concretos, lo típico si habéis utilizado SQL alguna vez. El método First se utiliza para coger el objeto, si no utilizamos first o get no nos devolverá el objeto, sino la query. El método First se usa para obtener el primer Objeto que encuentre con esos parámetros, si el primer Marc que encuentra es el usuario 1 cogerá ése. Con el Get obtenemos todos los objetos, es decir, si un Marc es de ID 1, y otro con ID 5, obtendremos un array con los dos Marc.

Os dejo en enlace a la documentación oficial de Laravel para que miréis todas las operaciones que se pueden hacer:

https://laravel.com/docs/5.1/eloquent

Aquí van unos ejemplos que podréis deducir para que son cada uno.

User::where(['name' => 'Marc', 'email' => '[email protected]']);

User::insert(['name' => 'Marc', 'email' => '[email protected]']);

User::where('id', 1)->update(['name' => 'Marc Garcia']);

User::where(['name' => 'Marc', 'email' => '[email protected]'])->delete();