Langung saja, pada laravel 5.1 kita dapat menggunakan library, salah satunya
Cocur/slugify.
Menggunakan library ini selain menghapus beberapa karakter yang sering digunakan, juga menghapus banyak karakter lainnnya. Selain itu dapat mengkustom beberapa bahasa yang dalam hurufnya menggunakan berbagai karakter, seperti Bahasa Jerman, Perancis, Rusia, Arab, Vietnam, dan lain sebagainya.
Secara umum, dari dokumentasi yang diberikannya, saya singkat seperti berikut:
1. Kita dapat instal library ini melalui terminal : masuk ke project kita:
$ composer require cocur/slugify
2. Pada
config/app
tambahkan service provider
'providers' => array(
"Cocur\Slugify\Bridge\Laravel\SlugifyServiceProvider",
)
3. Kemudian tambahkan facade ke array aliases:
'aliases' => array(
"Slugify" => "Cocur\Slugify\Bridge\Laravel\SlugifyFacade",
)
4. Cara menggunakan bisa menggunakan
$url = Slugify::slugify('welcome to the homepage');
Tambahan:
Pada dokumentasi tersebut untuk di laravel tidak disebutkan pemanggilan use, ketika saya mencoba menggunakan
use Cocur\Slugify\Slugify;
facade tidak bekerja pada model, sedangkan menggunakan terminal bisa saja.
Tanpa berpusing panjang :D, jadi agar dapat menggunakan library ini pada model saya menggunakan
use Cocur\Slugify\Slugify;
$slugify = new Slugify();
echo $slugify->slugify('Hello World!'); // hello-world
Praktek realnya, saya menggunakan
mutator untuk menyimpan ke dalam database:
namespace App;
use Illuminate\Database\Eloquent\Model;
use Cocur\Slugify\Slugify;
class Post extends Model
{
...
public function setSeopostAttribute($seopost)
{
$slugify = new Slugify();
$this->attributes['seopost'] = $slugify->slugify($seopost);
}
}
seopost
dalam array
attributes
merupakan nama field pada tabel. Sedangkan
Seopost
yang berada di
setSeopostAttribute
harus sama dengan nama field.
And work.