- #laravel
- #tips
- #strings
Pluralizar textos en Laravel
Escrito por Jhon Achata el 3 de noviembre de 2023
Trabajar con strings en laravel no tiene por que ser complicado, en esta ocasión veremos como pluralizar textos a nuestra conveniencia.
Escenario
Tomemos como ejemplo un carrito de compras, en este caso, necesitaremos mostrar un resumen de cuantos productos tenemos en el carrito, por ejemplo.
Tienes 1 productoY si tenemos más de un producto, debemos cambiar el texto por:
Tienes 3 productosUna posible solución seria el siguiente:
$carrito = Carrito::with('detalles')->find(3);
echo "Tienes $productos producto" . ($carrito->detalles->count() > 1 ? 's' : '');
// Output: Tienes 3 productosEn la solución anterior usamos un ternario pero la solución no se ve nada elegante.
Método plural de laravel
Vamos una solución más elegante de como pluralizar textos, con el helper plural de laravel.
$carrito = Carrito::with('detalles')->find(3);
echo "Tienes $productos " . Str::of('producto')->plural($carrito->detalles->count());
// Output: Tienes 3 productosPluralización en español
El helper plural por defecto soporta el idioma ingles, y en algunas palabras nos devolverá una pluralización incorrecta, por ejemplo:
echo Str::of('árbol')->plural(2);
// Output: árbolsEn el ejemplo anterior obtenemos como plural de la palabra árbol, árbols lo cual es incorrecto, pues lo correcto seria árboles, para solucionar esto debemos realizar una configuración adicional en el archivo AppServiceProvider.php:
use Illuminate\Support\Pluralizer;
/** * Bootstrap any application services. * * @return void */public function boot(){ Pluralizer::useLanguage('spanish');}Puedes encontrar mas información sobre el método plural en la documentación.