2016-03-27 19 views
0

Web sitemi CodeIgniter çerçevesinde geliştirmeye devam ediyorum ve yaptığım seçim için gerçekten çok mutluyum çünkü çok kolay ve kod temiz. Aşağıda mevcut sorunumu açıklayacağım.Codeigniter, değişken olan bir genel işlev adına sahip olmak mümkün mü?

benim Kontrolörleri birinde

Yazdığım:

public function abcd() { 
    //CONTENT of the controller public function  
} 

o dinamically adı MySQL den, örneğin, değerini alarak "() abcd" değiştirmek mümkün mü? Sadece daha açık olmak gerekirse, her zaman denetleyicinin aynı İÇERİĞİNİ kullanmamı sağlayan bir ifade kullanmak istiyorum, ancak farklı kamu işlevleri için.

cevap

0

Sen/routes.php rota adını değiştirmek hiç

$route['dynamic_name'] = "controller_name/abcd"; 

, url kontrolör değişecek config ROUTE ile kontrolör fonksiyonu adını değiştirebilir

http://domain.name/index.php/welcome/abcd 
önce

http://domain.name/index.php/welcome/dynamic_name 
sonra

da same_url

için birden rotayı ekleyebilir ve config kodunun altında db kullanımından değerini almak istiyorsanız/routes.php

require_once(BASEPATH .'database/DB'. EXT); 
$db =& DB(); 
$query = $db->get('menus'); 
$names = $query->result(); 

foreach ($names as $key => $name) { 
$route[$name] = "controller_name/abcd"; 
} 
+0

denetleyici dosyasında dinamik kontrolör adını değiştiremezsiniz –

+0

Teşekkür Parthiban Cevabınız için K. Cevabınızın ilk bölümünde önerdiğiniz gibi yaptım (DB dahil olmak üzere parçayı denemeliyim) ama rota.php sadece rotayı koyduğumda ['dynamic_name'] komut dosyası bana 404 hatası veriyor . Bunun yerine, $ route ['controller_name/dynamic_name'] kullanırsam çalışır. – mauro269

+0

Bunu düşünürsek, DB kodunu güncellemem gerekirse ... nasıl olacak? $ Rotasını aşağıdaki şekilde güncellemek doğru mu? => $ rota ['controller_name /'.$ adı] – mauro269

İlgili konular