En este artículo, echaré un vistazo a las nuevas características de Laravel 5.2 y las describiré una por una. Las nuevas características se enumeran a continuación:
Esta función lo ayudará, especialmente cuando necesite tener Doctrine ORM Auth con múltiples proveedores. En mis proyectos, prefiero tener autenticación de usuario y administrador separadas unas de otras; esta característica me ayudará a lograr esto fácilmente. Veamos un ejemplo config / auth.php
:
// ... 'guardias' => ['usuario' => ['controlador' => 'sesión', 'proveedor' => 'usuarios',], 'admin' => ['controlador' => 'sesión', 'provider' => 'admin',], 'api' => ['driver' => 'token', 'provider' => 'users',],], // ... 'suppliers' => ['users '=> [' driver '=>' doctrine ',' model '=> App \ Entities \ Users :: class,],' admin '=> [' driver '=>' doctrine ',' model '=> App \ Entities \ Admin :: class,],],
Ahora, cuando usas Auth :: intento ([…])
, Laravel llamará a la guardia por defecto; así que si desea usar un guardia específico, simplemente llame con su nombre, como Auth :: guardia ('admin')
.
Para la autenticación en su grupo de ruta con un guardia específico, simplemente puede llamar al nombre del guardia:
Ruta :: grupo (['middleware' => ['auth: admin']], function () //…
A veces, en lugar de un inicio de sesión simple en su aplicación, desea que los usuarios agreguen un api_token
hasta el final de su cadena de consulta y úselo para autenticar su solicitud. El TokenGuard te permitirá lograrlo fácilmente.
Si desea usar la autenticación de token, primero debe agregar un único de 60 caracteres. api_token
campo en la tabla de base de datos del modelo seleccionado (entidad en doctrina). Ahora puedes usar fácilmente api
guardia en tu aplicación.
Una de las nuevas características de Laravel 5.2 que es muy práctica es el enlace del modelo de ruta. Puede enlazar el modelo a su ruta; Antes de esto lo crearíamos manualmente:
Route :: get ('user / id', función ($ id) $ user = Users :: findOrFail ($ id); //…);
O puedes hacer algo como:
//… $ router-> modelo ('usuario', 'Aplicación \ Usuario'); // ... $ router-> get ('perfil / usuario', función (App \ Usuario $ usuario) //);
Laravel 5.2 lo hace aún más fácil. Simplemente pase un parámetro en el cierre de la ruta, y lo tratará automáticamente como un enlace de modelo de ruta:
Route :: get ('user / id', función (App \ User $ user) // ...);
Ahora es más fácil enlazar el modelo a su ruta..
Por defecto, Laravel usa la columna de identificación del modelo. Pero si espera que cambie la asignación, puede cambiar su modelo de la siguiente manera:
clase Usuario extiende Modelo función pública getRouteKeyName () return 'UserEmail';
Elocuente implementa el Illuminate \ Contracts \ Routing \ UrlRoutable
contrato, por lo que puede anular el getRouteKeyName ()
método. Define qué columna debe usarse para buscarla desde una URL.
Como puede ver en la sección anterior, hemos creado una protección diferente para el usuario y el administrador. En este caso, si desea asignar múltiples middleware a un grupo de ruta de usuario o a su grupo de ruta de administración, Laravel 5.2 le permite crear un acceso directo con un nombre de tecla.
Para definir el grupo de middleware, debe modificar el kernel.php en su carpeta http:
protected $ middlewareGroups = [// ... 'admin' => ['acl', 'web', 'auth',]];
Y ahora puedes usarlo fácilmente en tu grupo de rutas..
Si usa la API de otra aplicación como GitHub, para solicitudes que usan Autenticación Básica o OAuth, puede realizar hasta 5,000 solicitudes por hora. Esta limitación se llama limitación de velocidad. Si quieres tener algo como esto en tu aplicación, puedes usar la nueva característica de Laravel 5.2. Laravel 5.2 agregado nuevo acelerador
middleware que manejará la limitación de velocidad. Por ejemplo, puede tener algo como:
Route :: group (['prefix' => 'api', 'middleware' => 'throttle'], function () Route :: get ('user', function () return Users :: all (); ););
Por defecto, acelerador
middleware permite 60 intentos por minuto en kernel.php
:
// ... 'api' => ['acelerador: 60,1', 'auth: api',],
Puede cambiarlo como desee o incluso personalizarlo para un enrutador específico:
Route :: group (['prefix' => 'api', 'middleware' => 'acelerador: 10,1000'], function () Route :: get ('user', function () return Users :: todos(); ); );
Laravel 5.2 proporciona una forma rápida de organizar todo lo que necesita para la autenticación mediante este comando:
php artesanal hacer: auth
El uso de este comando en su nueva aplicación hará que las vistas de registro e inicio de sesión, así como las rutas para todas las autenticaciones. Mi archivo de ruta se ve como:
Route :: group (['middleware' => 'web'], function () Route :: auth (); Route :: get ('/ home', 'HomeController @ index'););
los Ruta :: auth ()
Método es un atajo para definir las siguientes rutas:
// Rutas de autenticación ... $ this-> get ('login', 'Auth \ AuthController @ showLoginForm'); $ this-> post ('login', 'Auth \ AuthController @ login'); $ this-> get ('logout', 'Auth \ AuthController @ logout'); // Rutas de registro ... $ this-> get ('register', 'Auth \ AuthController @ showRegistrationForm'); $ this-> post ('register', 'Auth \ AuthController @ register'); // Rutas de restablecimiento de contraseña ... $ this-> get ('password / reset / token?', 'Auth \ PasswordController @ showResetForm'); $ this-> post ('password / email', 'Auth \ PasswordController @ sendResetLinkEmail'); $ this-> post ('password / reset', 'Auth \ PasswordController @ reset');
UNA HomeController
También se generará, que es responsable de las solicitudes de inicio de sesión en el panel de control de su aplicación. Pero puede personalizar o eliminar este controlador según las necesidades de su aplicación.
Una de las cosas interesantes con las que he trabajado es la matriz de datos en formato HTML. Si coloca algo entre los corchetes, la matriz resultante se convierte en asociativa; De lo contrario, será numérico:
El PHP print_r ($ _ POST)
el resultado será:
array ('name' => array ('first' => "last '=>"))
Esto le ayudará a simplificar el proceso de validación y trabajar con formularios. Ahora veamos la validación de nuestros campos de usuario en Laravel 5.2:
función pública Validator () $ this-> validate (Request :: all (), ['name. *. first' => 'required | string', 'name. *. last' => 'string',]) ;
Es posible que haya notado que la forma de la validación es apellido
, con un asterisco en el medio, que casi indica que podría agregar la clave de una matriz o cualquier otra cosa que pueda necesitar.
Laravel 5.2 fue una versión pequeña que puede permitirte trabajar mejor y más rápido. Como puede observar, muchas de estas características también son fáciles de aprender..