"Enter"a basıp içeriğe geçin

Laravel #2 – Routing ve View Kavramı

Laravel, gelen HTTP isteklerini yönetebilmek için Route dediğimiz sistemi kullanır. Gelen istekler Route ile alınarak uygun Controller yada View’a aktarılır.

Rota tanımları proje dizininde ki routes/web.php dosyasında bulunur. Bu dosyayı açıyoruz. Bizi muhtemeldir aşağıda ki kodlar karşılıyor olacak.

Route::get('/', function () {
    return view('welcome');
});

Not: View ve Controller kavramlarına 0. bölümde değinmiştik.

Burada projenin ilk açılış sayfası (kök dizin “/”) için istek geldiğinde welcome view’ine yönlendirme yapması söylenmiş. View’ler resources/views dizini altında bulunan blade.php uzantılı dosyalardır. Yani anlayacağınız projemizin görünen yüzü bu dosyalardır.

Tabi ki MVC yapısını kullanırken direk olarak view çağırmak doğru bir yaklaşım değil. Bunun için Controller çağırmamız daha mantıklı olur.

Route::get('/', 'HomeController@Welcome');

Şunu da ekleyelim, Controller dosyaları ise http/controllers dizininde bulunan php uzantılı dosyalardır. Biz burada HomeController.php dosyasında ki Welcome fonksiyonunu çağırmış olduk.

Farklı türde istekler için farklı rotalar tanımlayabilirsiniz. Aşağıda ki örneği inceleyelim.

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

Şimdi gelin örnek 2 adet rota tanımı oluşturalım.

Route::get('/blog', 'BlogController@Blog');
Route::get('/Hakkimizda', function(){
    return view('hakkimizda')
});

Birden fazla isteği yakalamak için ise match fonksiyonunu kullanmamız gerekiyor.

Route::match(['get', 'post'], '/blog', 'BlogController@Blog');

Parametre Göndermek

Tabi ki bazı durumlarda URL adreslerinden bazı bilgileri almamız gerekir. Örneğin güncelleme, silme gibi işlemlerde ID değerinin alınması gibi. Bu durumda URL adresinden ilgili kısmı çekmek için aşağıda ki yapıyı kullanıyoruz.

Route::get('kullanici/{id}', function ($id) {
    return 'Kullanıcı ID: '.$id;
});

Tarayıcıdan “http://127.0.0.1:8000/kullanici/1” adresine giriş yapıyoruz. Görüldüğü gibi girilen değeri ekrana bastıracaktır.

Birden fazla parça yakalamanız gereken durumlarda da aynı işlem geçerli.

Route::get('ulke/{ulkeID}/sehir/{sehirID}', function ($ulkeID, $sehirID) {
    return 'Ülke: ''.$ulkeID. Şehir: '.$sehirID
});

İsteğe Bağlı Parametreler

İsteğe bağlı, yani optional yada başka bir değiş ile default (varsayılan) parametre göndermek istediğiniz durumlarda aşağıda ki yapı geçerli oluyor.

Route::get('kullanici/{id?}', function ($id = null) {
    return $id;
});

Route::get('kullanici/{isim?}', function ($isim = 'Emre') {
    return $isim;
});

Yönlendirme İşlemleri

Bir sayfadan gelen isteği başka bir sayfaya yönlendirmek için aşağıda ki redirect fonksiyonunu kullanabilirsiniz. İlk parametremiz isteğin geldiği sayfa, ikinci parametremiz ise yönlendirilecek sayfa. Bakalım aşağıda ki kötü espriyi kimler anlayacak.

Route::redirect('/hay', '/huy');

Yönlendirmelerde varsayılan statü kodu 302 olarak geçiyor. Değiştirmek için 3. bir parametre ekleyebilirsiniz.

Route::redirect('/hay', '/huy', 301);

Şimdilik 3 ana kavrama değindik, tabi ki dahası var. Yeri geldikçe değineceğiz. Şimdilik kolay gelsin diyoruz.

İlk Yorum Sizden Gelsin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.