Todos los artículos

Rule::array() y whereJsonOverlaps() para MySQL en Laravel 11.7

Julian Beaujardin
Julian Beaujardin Reference: Laravel News May 7th, 2024

Esta semana, el equipo de Laravel lanzó la versión 11.7, con un método de validación Rule::array(), un método whereJsonOverlaps() para MySQL, un proveedor Slack OpenID para Laravel Socialite y más.

Nuevo método Rule::array()

Jakub Potocký contribuyó con el método Rule::array() usado para validar múltiples claves de matriz usando la regla de validación de matriz. Este método permite usar esta regla con matrices y colecciones sin tener que concatenar valores dinámicos:

use Illuminate\Validation\Rule;

// Before
['array:' . MyBackedEnum::VALUE->value . ',' . MyBackedEnum::VALUE_2->value];

// After examples
Rule::array('key_1', 'key_2', 'key_3');
Rule::array(['key_1', 'key_2', 'key_3']);
Rule::array(collect(['key_1', 'key_2', 'key_3']));
Rule::array([UnitEnum::key_1, UnitEnum::key_2, UnitEnum::key_3]);
Rule::array([BackedEnum::key_1, BackedEnum::key_2, BackedEnum::key_3]);

Ver Pull Request #51250 para obtener detalles completos..

Soporte encadenable en helpers para blank() y filled()

Stefan R. contribuyó con soporte para valores Stringable en los helpers blank() y filled():

// true
filled(str('FooBar '));

// true
blank(str('  '));

Nueva función "whereJsonOverlaps()" para MySQL

Benjamin Ayles contribuyó con soporte para la característica json_overlaps de MySQL que compara dos documentos JSON:

User::whereJsonOverlaps('languages', ['en', 'fr'])->exists();
User::whereJsonDoesntOverlap('languages', ['en', 'fr'])->exists();

Ver Pull Request #51288 para más detalles.

Nuevo evento PasswordResetLinkSent

Matt Jones contribuyó con un nuevo evento llamado PasswordResetLinkSent que se activa cuando se envía un enlace para restablecer la contraseña. Consulte la Solicitud de extracción n.º 51253 para obtener más detalles.

Notas de la Versión

Puede ver la lista completa de nuevas funciones y actualizaciones a continuación y la diferencia entre 11.6.0 y 11.7.0 en GitHub. Las siguientes notas de la versión provienen directamente del registro de cambios