El equipo de Laravel lanzó 9.40 esta semana con una nueva clase de utilidad de lotería, nuevas reglas de validación, afirmación de una redirección a una ruta con nombre y más.
Clase de utilidad de lotería
tim macdonald contribuyó un Lottery
clase de soporte que se puede usar en varios contextos, como muestreo de datos aleatorios, informes de fallas, etc.
Aquí hay un ejemplo de una API básica:
1Lottery::odds(1, 10)->choose();
2
3// returns `true` for "win"
4// returns `false` for "loss"
5
6Lottery::odds(1, 10)
7 ->winner(fn () => 'winner')
8 ->loser(fn () => 'loser')
9 ->choose();
10
11// returns `"winner"` for "win"
12// returns `"loser"` for "loss"
Aquí hay algunos ejemplos específicos de Laravel del solicitud de extracción, donde Lottery podría usarse junto con otras características de Laravel. En el siguiente ejemplo, el Lottery
cadena de llamada devuelve un callable
instancia que puede registrar como controlador en varios eventos de Laravel:
1// Randomly sample so we don't flood our error handler...
2
3DB::whenQueryingForLongerThan(
4 Interval::seconds(2),
5 Lottery::odds(1, 100)->winner(fn () => report('DB queries exceeded 2 seconds'))
6);
7
8// Randomly sample so we don't flood our error handler...
9
10Model::handleLazyLoadingViolationUsing(Lottery::odds(1, 5000)->winner(function ($model, $relation) {
11 report(new LazyLoadingViolationException($model, $relation));
12}));
El Laravel documentacion de ayudas tiene ejemplos del uso de esta clase y cómo probarla también.
Observadores de modelos elocuentes enumerados en el comando model:show
mike healy contribuyó con una actualización de la model:show
comando que enumera observadores modelo para un modelo dado:
También maneja múltiples observadores adjuntos a la misma acción de modelo. La lista de observadores es útil para encontrar rápidamente observadores listados para un modelo sin buscar llamadas de proveedores de servicios.
Reglas de validación de minúsculas y mayúsculas
tim macdonald contribuyó un lowercase
regla de validación, que requiere que la entrada validada esté en minúsculas. Esto puede ser útil cuando no desea cambiar silenciosamente la información del usuario a minúsculas, pero quiere asegurarse de que solo inserten minúsculas. Por ejemplo, una entrada para crear un usuario de base de datos pero que requiere que el usuario esté todo en minúsculas.
1Validator::make(
2 ['name' => 'Admin'],
3 ['name' => 'required|string|lowercase']
4);
miguel nabil contribuyó un uppercase
regla de validación que asegura que la entrada dada está en letras mayúsculas:
1Validator::make(
2 ['name' => 'ADMIN'],
3 ['name' => ['required', 'string', 'uppercase']
4);
Afirmar redireccionamiento a una ruta
Zaher Gaibeh contribuyó un assertRedirectToRoute
método que puede usar para afirmar que una respuesta es una redirección a una ruta nombrada determinada:
1this->get('test-route')
2 ->assertRedirectToRoute('named-route');
Guarde muchos modelos con tranquilidad
niels contribuyó un saveManyQuietly
método de guardar silenciosamente varios modelos porque pertenece a muchos y tiene una o más relaciones.
1$model->saveManyQuietly($relatedModels);
Notas de lanzamiento
Puede ver la lista completa de nuevas funciones y actualizaciones a continuación y la diferencia entre 9.39.0 y 9.40.0 en GitHub. Las siguientes notas de la versión provienen directamente de registro de cambios:
v9.40.0
Adicional
- Incluya observadores de modelos elocuentes en el comando model:show (#44884)
- Se agregó la regla de validación «minúsculas» (#44883)
- Introducir
Lottery
clasificar (#44894) - Adicional
/Illuminate/Testing/TestResponse::assertRedirectToRoute()
(#44926) - Agregue una regla de validación de mayúsculas (#44918)
- Se agregó saveManyQuietly a hasOneOrMany y existeToMany(#44913)
Fijado
- Se corrigieron HasAttributes::getMutatedAttributes para clases con argumentos de constructor (#44829)
enmendado
- Eliminar la asignación de argumentos para la consola (#44888)
- Pase $maxExceptions de correoable a trabajo subyacente al poner en cola(#44903)
- Hacer público::esRunningHot (#44900)
- Agregue un método para que pueda anular el formato de contexto de excepción (#44895)
- Agregue un espacio de ancho cero a los caracteres recortados en el middleware TrimStrings (#44906)
- Mostrar error si falla key:generar comando artesanal (#44927)
- Comprobación de la versión de la base de datos actualizada para el bloqueo de PlanetScale (#44925)
- Mover función sin Papelera en DatabaseRule(#44938)
- Utilice la conexión de escritura en Schema::getColumnListing() y Schema::hasTable() para MySQL y PostgreSQL (#44946)
«Emprendedor. Aficionado incurable al twitter. Gamer. Aficionado apasionado de la cerveza. Practicante de la web. Estudiante típico».
También te puede interesar
-
La red social Butterflies AI agrega una función que te convierte en un personaje de IA
-
Capture cada momento como un profesional con la cámara más potente del Galaxy Z Flip hasta el momento – Samsung Newsroom México
-
Epiroc lanza un nuevo equipo de perforación de producción de pozos largos
-
Caroline Doherty está satisfecha con los resultados del Leaving Cert de los estudiantes de Moville
-
En imágenes: gran revuelo en la jornada de puertas abiertas de los apicultores de Laois – Página 1 de 9