Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter,有可能有一个可变的公共函数名吗?_Php_Mysql_Codeigniter - Fatal编程技术网

Php Codeigniter,有可能有一个可变的公共函数名吗?

Php Codeigniter,有可能有一个可变的公共函数名吗?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我继续在CodeIgniter框架中开发我的网站,我真的很高兴我所做的选择,因为它非常简单,代码也很干净。 下面我将解释我目前的问题 在我的一个控制器中,我写到: public function abcd() { //CONTENT of the controller public function } 是否可以通过友好方式更改“abcd()”名称,例如从mySQL获取值? 更清楚地说,我想使用一条语句,该语句允许我始终使用控制器的相同内容,但用于不同的公共函数。您可以使用c

我继续在CodeIgniter框架中开发我的网站,我真的很高兴我所做的选择,因为它非常简单,代码也很干净。 下面我将解释我目前的问题

在我的一个控制器中,我写到:

public function abcd() {
   //CONTENT of the controller public function      
}
是否可以通过友好方式更改“abcd()”名称,例如从mySQL获取值?
更清楚地说,我想使用一条语句,该语句允许我始终使用控制器的相同内容,但用于不同的公共函数。

您可以使用config/routes.php中的ROUTE更改控制器函数名

$route['dynamic_name'] = "controller_name/abcd";
无论何时更改路由名称,url中的控制器都将更改

以前

http://domain.name/index.php/welcome/abcd
之后

还可以为同一url添加多个路由

如果您想从db中获取值,请使用config/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";
}

您无法更改控制器文件中的控制器名称dynamic感谢Parthiban K的回复。我已经按照您在回复的第一部分中的建议做了(我必须尝试包含DB的部分),但是如果我只在route.php中输入$route['dynamic_name',],脚本会给我一个404错误。相反,如果我使用$route['controller\u name/dynamic\u name'],它会工作。考虑到这一点,如果我应该更新数据库代码……它会变成什么样子?按以下方式更新$route是否正确?=>$路线['controller_name/.$name]只需参考以下链接亲爱的Parthiban,不,我没有解决我的问题。如果我尝试按照您的建议实现数据库解决方案,我会收到一个500错误。
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";
}