-- Laravel 5.4

Laravel 5.4 Eloquent Sluggable Kullanımı

Laravel 5.4 ile Eloquent Sluggable paketininin kullanımını inceleyeceğiz. Eloquent Sluggable, bizlere “SEO” dostu link yapısı oluşturmaktadır.

Öncelikle Laravel kurulumumuzu gerçekleştirelim. “Laravel” yazısını gördükten sonra Eloquent Sluggable kullanımına geçebiliriz. Makalede döküman olarak GitHub adresini kullancağım. Sizler de GitHub adresinden Eloquent Sluggable kullanımına dair çok daha fazla bilgiyi edinebilir, projelerinizde kullanabilirsiniz.

Eloquent Sluggable

Laravel‘in kurulu olduğu dizine eriştikten sonra uçbirimde

komutunu çalıştıralım. Ve hemen ardından config/app.php dosyamızı güncelleyelim.

Son olarak; tekrar uçbirimde Laravel’in kurulu olduğu dizinde aşağıda yer alan komutu çalıştıralım.

Buna benzer bir çıktı aldıysanız kurulumu başarıyla tamamlamışsınız demektir.

Modelimizi Güncelleyelim

Modelimizi güncellememiz gerekmektedir. Tabii bunun için öncelikle bir model dosyasına ihtiyacımız var. Uçbirimde, Laravel‘in kurulu olduğu dizinde aşağıdaki komutu çalıştıralım.

Sonundaki -m parametresi aynı zamanda ismini Article olarak tanımladığımız model dosyasına ait bir “Migrate” dosyası da oluşturmaktadır.

Buna benzer bi çıktı aldıysak başarılı bir şekilde model ve migrate dosyalarımız oluşmuş demektir.

Laravel dizinimizde bulunan App klasöründe “Article” isminde model dosyamızın başarılı bir şekilde oluşturulduğunu görüyoruz ve dosyanın en üstüne; namespace App;  satırının hemen altına şu kodu ekliyoruz:

Model dosyamızın devamını ise aşağıda gösterildiği şekilde güncelliyoruz.

Buradaki değerlerin anlamlarını irdelemek ve konfigüre etmek için yukarıda paylaştığım pakete ait GitHub bağlantısını inceleyebilirsiniz. Burada title  alanını döndürmesini sağladık.

Migrate

Model dosyamızı oluşturken aynı zamanda migrate dosyamızı da oluşturmuştuk. Şimdi içerisinde ufak bir güncelleme yapalım.

Burada slug  olarak tanımladığım alanıma kullanacağımız bağlantı adresimiz eklenecektir. Tabii ki title  alanını referans almak şartı ile.

Tablomuzu veritabanına tanımlamadan önce pek tabii bir veritbanımızın olması gerekmekte ve bunu Laravel‘e bildirmek durumundayız.

Laravel ana diziminizde bulunan .env dosyasını açalım ve ilgili kısımları aşağıdaki gibi düzenleyelim. Ben slug  isminde bir veritabanı oluşturdum.

Benim kullanıcı ismim root ve parolam bulunmamakta. Siz kendinize göre düzenlemeyi unutmayın!

Bu ayarlarımı kaydettikten sonra Laravel dizinimizde açtığımız uçbirimde aşağıdaki komutu çalıştırarak config  ayarlarımızı güncelleyelim.

Şimdi veritabanımıza tablolarımızı ekleyebiliriz.

Ben bu komutu çalıştırdığımda Laravel 5.4 ile bir hata aldım. Siz almadı iseniz devam edin. Benim aldığım hata şu şekilde:

Çözüm olarak, AppServiceProvider.php dosyamızın en üstüne aşağıdaki kodu ekleyelim.

Ve devamında;

Dosyamızda bulunan boot  fonksiyonunu güncelleyelim. Tekrar deniyorum.

Eğer aşağıdakine benzer bir çıktı aldıysanız tablolarınız başarılı bir şekilde eklenmiş demektir.


Laravel 5.4 Türkçe Karakter Sorunu

1. Yöntem:

Laravel 5.4 sürümünde str_slug ‘ta karakter hatası mevcut. Şöyle ki;

‘ö’ harfimiz ‘oe’, ‘ü’ harfimiz ise ‘ue’ şeklinde çıkmaktadır. Bunu düzeltmek için sluggable.php dosyamızda kırk yedinci satırda güncelleme yapalım.

2. Yöntem:

Laravel‘de karakter setleri üzerine Slugify paketini kullanabiliriz.

Model dosyamızı açalım.

Yukarıdaki satırı tanımladıktan sonra model dosyamıza aşağıdaki satırları ekleyelim.

Hangi yöntemi kullanacağınız size kalmış.

Slugify GitHub ve bu sorun üzerine gelişmeleri buradan takip edebilirsiniz.

Test Edelim

Laravel dizinimizde açtığımız uçbirimde php artisan tinker komutunu çalıştıralım ve sırası ile aşağıdaki komutları takip edelim.

Article::all() komutumuzun çıktısı aşağıdakine benzer olacaktır.

Görüldüğü üzere; slug  alanımız title  alanını referans alarak bizlere SEO dostu bir link oluşturdu.

 

Herkese iyi çalışmalar.

 

Yorumunu Paylaş!

Yorum