Bu yazımızda ise Laravele route group yani rota grupları konusuna değineceğiz.
Laravel rota gruplama işlemiyle rotaları belli bir düzen ve hiyerarşi içerisinde gruplamanıza izin verir.
Rota grupları birden fazla rota üzerinde işlem yapmak istediğiniz zaman işimizi kolaylaştırır ve bize fayda sağlar.
Laravelde rota gruplama işleminin temel sözdizimi şu şekildedir;

 <?php
Route::group([ ], callback);

Basit bir örnek yapacak olursak;

web.php dosyası

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Test;
 
Route::group([], function()  
{  
   Route::get('/ilk',function()  
 {  
   echo "ilk rota";  
 });  
Route::get('/iki',function()  
 {  
   echo "ikinci rota";  
 });  
Route::get('/uc',function()  
 {  
   echo "üçüncü rota";   
 });  
});  
?>

Yukarıdaki örnekte gördüğünüz gibi 3 tane rotayı aslında tek bir çatı altında topladık. Yani gruplama yaparken tanımladığımız ya da olmasını istediğimiz şeyler altındaki tüm rotaları etkileyecek.

Prefix Tanımlama

Benim en çok kullandığım olay bu rota gruplarında. mesela /test/{slug} adında 50 tane rotamız var. Rota gruplarına prefix olarak bunu tanımlıyoruz ve rota grubu içerisinde ne kadar route tanımlarsak tanımlayalım hepsine prefix eklenmiş olur. Yani kısaca ortak parametrelerde prefix kullanıyoruz.

Bunu da bir örnekle açıklamak istiyorum.

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Test;
Route::group(['prefix' => 'kisi'], function()  
{  
   Route::get('/zafer',function()  
 {  
   echo "Zafer Yıldız";  
 });  
Route::get('/sare',function()  
 {  
   echo "Sarenur Ocaktan";  
 });  
Route::get('/fatih',function()   
 {  
   echo "Fatih Bağcivan";  
 });  
 Route::get('/aylin',function()  
 {  
   echo "Aylin Duran";  
 });  
 Route::get('/emrullah',function()  
 {  
   echo "Emrullah Tanıma";  
 });  
});

Yukardaki kodu kaydedip çalıştırırsanız rota grupları içerisinde tanımladığınız tüm rotalardan önce kisi önekini getirmeliyiz. Mesela ilk rotamızı /zafer olarak tanımladık. ancak çalışma şekli rota grubundan dolayı kisi/zafer şeklinde olacaktır.

Rotalara Middleware Atama

Bir grup içerisindeki tüm rotalara middleware atamak istediğimiz durumlar olabilir. Bu durumda aşağıdaki gibi bir yapı kullanırız.

<?php
Route::middleware(['a', 'b'])->group(function () {
    Route::get('/', function () {
        // a ve b middleware burayı etkiler
    }); 

    Route::get('/zafer/1', function () {
        // a ve b middleware burayı etkiler.
    });
});

Subdomain için Rota Oluşturma

Laravel’in güzellikleri gerçekten bitmiyor. Bunu bile düşünmüşler. Subdomainimize yönlendirme yapmak için aşağıdaki yapıyı kullanırız.

<?php
Route::domain('{hesap}.example.com')->group(function () {
    Route::get('kisi/{id}', function ($hesap, $id) { 
        //
    });
});

Subdomain nedir ?

Alt alan adı, bir ana alan adına bağlı olan alt alanlardır. Genellikle alan adının önüne getirilen nokta ile ayrılırlar.
Örneğin;
bilisim34.net
tr.bilisim34.net

Rota gruplarında Rotalara İsim Tanımlama

Bir önceki yazımda bahsetmiştim. Rotalara isim yoluyla ulaşabiliyorduk. Burada da rotalara isim vermek için aynı yapıyı kullanıyoruz. Route group fonksiyonundan önce yazacağımız ön eki belirtiyoruz.

Web.php dosyamız.

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Test; 
Route::name('kisi.')->group(function () {
    Route::get('/zafer', function () {
        // Route assigned name "admin.users"...
    })->name('zafer');
}); 
?>
Shares:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir