Yükleniyor ...

Üye giriş

E-posta adresiniz
Şifreniz
Şifremi unuttum

Üye Kayıt

Kullanıcı adı
E-posta adresiniz
Şifreniz
Şifre tekrar
Giriş yap

PHP - Codeigniter Route Kullanımı

Route İşlemi nedir?

Codeigniter framework ile url yönlendirme işlemlerimiz için route işlemini kullanırız. Codeigniter ile varsayılan olarak url yapısı "example.com/class/function/id/" bu şekildedir. Route işlemi ile bu url yapısını kendimize göre düzenleyebiliriz. 

 

Kullanımı

Rota işlemlerimizi yapmak için "routes.php" adlı dosyayı kullanıyoruz. Bu dosyayı codeigniter projemiz içerisindeki "application/config/"  klasörü içerisinden bulabilirsiniz. Burdan hata sayfası ve anasayfanın hangi controller ve metod üzerinden çalışacağınıda yazabiliriz.

$route['default_controller'] = 'home/index';  // Anasayfa için home controller içerisindeki index metodunu çağır
$route['404_override'] = 'home/deneme'; // Eğer 404 hatası verirse home controller içerisindeki deneme metodunu çağır

Şimdi bizde bir tane route yazalım laughing.

$route['giris'] = "uyelik/giris";  // siteniz.com/giris şeklinde girilince uyelik controlleri içerisindeki giris metodunu çağıracak

Parametreli kullanım

Route işlemlerimizi yapmak için kullanabileceğimiz 2 tane yöntemimiz var.

1.Wildcards yöntemi

Bu yöntem için 2 tane kullanım şekli var.

(:num) => Sadece sayı yazılabiilr.

(:any) =>  Herhangi bir değer gelebilir.

$route['uye/(:any)/(:num)'] = "home/uye/$1/$2"; // siteniz.com/uye/deneme/1 url'si home controller içerisindeki uye metodunu çağırır ve değerleri parametre olarak gönderir. ($1 (:any) yazan yeri, $2 yazan yer (:num) yazan yeri temsil eder ve parametre olarak gönderilir.) 

Home controllerimizin içerisine aşağıdaki gibi bir metod oluşturup parametrelerimize ulaşabiliriz.

public function uye($kadi,$id)
{
    echo "Kullanıcı adı : ".$kadi."<br>";
    echo "Id değeri : ".$id;
}

2.Regular Expressions

Yukarıdaki yöntem yerine regex ile istediğimiz şekilde route yazabiliriz. 

$route['uye/([a-z]+)/(\d+)'] = 'home/uye/$1/$2';

Fonksiyon kullanımı

Controller içerisinden metodu çağırmak yerine direk eşit olduğu değere fonksiyonumuzu yazabiliriz.

// siteniz.com/uye/deneme/1
$route['uye/([a-z]+)/(\d+)'] = function($kadi,$id){
	echo "Kullanıcı adı : ".$kadi."<br>";
	echo "Id değeri : ".$id;
	exit;
};

 

Yorumlar(0)

Yorum yapmak için lütfen giriş yapın veya üye olun