Overriding default str_slug - possible? Laravel-7

We have users from TamilNadu and it looks like Laravel's default Str::slug() cannot handle characters like: தமிழ் . It simply returns a blank string. This is resulting into 404's on the profile pages of the users.

I'm wondering how do I fix this issue without disturbing the rest of my URLs. I think one way to fix this is to override the default Str::slug() function and check if the original function returns an empty string. If it does, I could comment the first field of as $title = static::ascii($title). then its works. But i don't want to disturb the default Str::slug() method. at the same time don't know how to override it.

Default Str::slug():

public static function slug($title, $separator = '-')
{
//$title = static::ascii($title);

// Convert all dashes/underscores into separator
$flip = $separator == '-' ? '_' : '-';
$title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title);

// Remove all characters that are not the separator, letters, numbers, or whitespace.
$title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($title));

// Replace all separator characters and whitespace by a single separator
$title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title);

return trim($title, $separator);
}

How are you handling this in your app? Thanks for advance..



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2xQzLa9
via IFTTT

تعليقات

المشاركات الشائعة من هذه المدونة

I am unable to figure out how to create payment collection request, after a form has been submitted in laravel

laravel, mysql transaction not working after failed one time