Laravel Routing: Yönlendirme Özellikleri ve Kullanımı - Detaylı Örnekler ve İpuçları

05 Mayıs 2023 312 Okuma süresi: 6 dakika

Laravel, popüler bir PHP web framework'üdür ve web uygulamaları geliştirmek için birçok özellik sunar. Bu özelliklerden biri de "Routing"dir. Routing, URL'leri kontrol etmek ve hangi kod bloklarının çalışacağını belirlemek için kullanılır. Bu blog yazısında, Laravel Routing özelliklerini detaylı bir şekilde ele alacağız ve Routing ile ilgili kullanışlı ipuçları sunacağız.

Routing Nedir?

Routing, web uygulamalarında, gelen isteklerin hangi kod bloklarında işleneceğini belirlemek için kullanılır. Laravel Routing, bir URL'nin belirli bir HTTP isteğiyle ilişkilendirilmesini sağlar. Örneğin, "/login" URL'si, "GET" isteğiyle ilişkilendirilebilir ve "login" sayfasını görüntülemek için kullanılabilir.

Controller Nedir?

Controller, web uygulamasındaki işlevleri işlemek için kullanılır. Bir Controller, bir sınıf olarak tanımlanır ve Laravel Routing, bir URL'yi bir Controller yöntemiyle ilişkilendirmek için kullanılabilir. Controller, uygulamanın iş mantığını ve işlevlerini yönetir ve Laravel'de MVC (Model-View-Controller) modelinde kullanılır.

Request Method Nedir?

Request method, bir HTTP isteğinin türünü belirtir. En yaygın HTTP istekleri "GET" ve "POST" dur. "GET" isteği, sunucudan veri almak için kullanılırken, "POST" isteği sunucuya veri göndermek için kullanılır. Laravel Routing, bir URL'yi belirli bir istek yöntemiyle ilişkilendirmek için kullanılabilir.

Naming Nedir?

Naming, Laravel Routing ile belirli bir URL'ye ad vermek için kullanılır. Naming, URL'ye ad vererek, URL'yi kolayca referans alabilirsiniz. Laravel Routing, adlandırılmış URL'lere bağlantı vermek ve kodu daha okunaklı hale getirmek için kullanışlıdır.

Route::redirect Nedir?

Route::redirect, belirli bir URL'yi başka bir URL'ye yönlendirmek için kullanılır. Örneğin, "mywebsite.com/about" URL'si, "mywebsite.com/about-us" URL'sine yönlendirilebilir. Bu, kullanıcıların aradıkları sayfayı daha hızlı ve kolay bulmalarına yardımcı olabilir.

Laravel Routing Özellikleri

Temel Routing

Laravel Routing, bir URL'yi bir Controller yöntemiyle ilişkilendirmek için kullanılabilir. Örneğin, aşağıdaki kod bloğu, "/home" URL'sini "HomeController" sınıfındaki "index" yöntemiyle ilişkilendirir.

Route::get('/home', 'HomeController@index');

Route Parameters

Laravel Routing, dinamik URL'ler oluşturmak için Route Parametreleri sağlar. Route Parametreleri, URL içindeki değişkenleri belirtir ve dinamik URL'ler oluşturmak için kullanılır. Örneğin, "/user/1" URL'si, "1" değerini "id" adlı bir parametre olarak alabilir ve "UserController" sınıfındaki "show" yöntemiyle ilişkilendirilebilir. Aşağıdaki kod bloğu, bu örneği göstermektedir:

Route::get('/user/{id}', 'UserController@show');

HTTP Request Methods

Laravel Routing, belirli bir HTTP isteği yöntemiyle ilişkilendirilmiş URL'ler oluşturmak için kullanılabilir. Örneğin, aşağıdaki kod bloğu, "/contact" URL'sini "GET" isteğiyle ilişkilendirir ve "ContactController" sınıfındaki "index" yöntemiyle ilişkilendirir.

Route::get('/contact', 'ContactController@index');

Ayrıca, aynı URL için farklı HTTP isteği yöntemleri de kullanabilirsiniz. Örneğin, aşağıdaki kod bloğu, "/contact" URL'sini "POST" isteğiyle ilişkilendirir ve "ContactController" sınıfındaki "store" yöntemiyle ilişkilendirir.

Route::post('/contact', 'ContactController@store');

Named Routes

Laravel Routing, adlandırılmış URL'ler oluşturmak için kullanılabilir. Örneğin, aşağıdaki kod bloğu, "/about" URL'sini "AboutController" sınıfındaki "index" yöntemiyle ilişkilendirir ve "about" adıyla adlandırır.

Route::get('/about', 'AboutController@index')->name('about');

Bu adlandırılmış URL'ye başka bir kod bloğundan erişmek için "route" yöntemi kullanabilirsiniz. Örneğin, aşağıdaki kod bloğu, "about" adlandırılmış URL'sine erişmek için kullanılır.

$url = route('about');

Route Prefixes

Laravel Routing, bir grup URL'ye aynı önek atamak için kullanılabilir. Bu, URL'leri daha düzenli ve okunaklı hale getirebilir. Örneğin, aşağıdaki kod bloğu, "/admin/dashboard" URL'sini "DashboardController" sınıfındaki "index" yöntemiyle ilişkilendirir ve "admin" önekiyle başlar.

Route::prefix('admin')->group(function () {
    Route::get('/dashboard', 'DashboardController@index');
});

Route Redirects

Laravel Routing, bir URL'yi başka bir URL'ye yönlendirmek için kullanılabilir. Örneğin, aşağıdaki kod bloğu, "/contact-us" URL'sini "/contact" URL'sine yönlendirir.

Route::redirect('/contact-us', '/contact');

Route Wildcards

Laravel Routing, URL'lerde belirli bir desene sahip değişkenleri belirtmek için Wildcards sağlar. Örneğin, aşağıdaki kod bloğu, "/post/123 " URL'sini "PostController" sınıfındaki "show" yöntemiyle ilişkilendirir ve "123" değerini "id" adlı bir parametre olarak alır.

Route::get('/post/{id}', 'PostController@show');

Wildcards ayrıca, belirli bir desene sahip birden çok değişkeni de belirtmek için kullanılabilir. Örneğin, aşağıdaki kod bloğu, "/category/laravel/posts/1" URL'sini "PostController" sınıfındaki "show" yöntemiyle ilişkilendirir ve "laravel" değerini "category" adlı bir parametre olarak, "1" değerini "post_id" adlı bir parametre olarak alır.

Route::get('/category/{category}/posts/{post_id}', 'PostController@show');

Route Groups

Laravel Routing, belirli bir önek veya ortak özelliklere sahip URL'leri gruplamak için kullanılabilir. Bu, ortak middleware veya özellikleri uygulamak için kullanışlı olabilir. Örneğin, aşağıdaki kod bloğu, "/admin" önekiyle başlayan tüm URL'leri "AdminController" sınıfındaki yöntemlerle ilişkilendirir ve "auth" ve "admin" middleware'lerini uygular.

Route::prefix('admin')->middleware(['auth', 'admin'])->group(function () {
Route::get('/dashboard', 'AdminController@dashboard');
Route::get('/users', 'AdminController@users');
Route::get('/posts', 'AdminController@posts');
});

Bu örnekler, Laravel Routing'in temel özelliklerini göstermektedir. Bu özellikleri birleştirerek, uygulamanızda güçlü bir URL yönlendirme sistemi oluşturabilirsiniz.

 

Benzer makaleler