Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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 从路由调用控制器中的函数_Php_Codeigniter_Url Routing - Fatal编程技术网

Php 从路由调用控制器中的函数

Php 从路由调用控制器中的函数,php,codeigniter,url-routing,Php,Codeigniter,Url Routing,我一直在寻找答案,但还没有找到真正的解决办法。我最近学习了一点Laravel,它有这种类型的路由: Route::get('home', 'functionname@controllername'); 到现在为止,我已经离开了拉威尔,正在摆弄CodeIgniter 我这里的路线是: $route['home'] = "controllername"; 然后调用index函数。我怎样才能像在Laravel中一样提到我需要调用的函数呢?我想这就是你想要的 $route['home'] = "co

我一直在寻找答案,但还没有找到真正的解决办法。我最近学习了一点Laravel,它有这种类型的路由:

Route::get('home', 'functionname@controllername');
到现在为止,我已经离开了拉威尔,正在摆弄CodeIgniter

我这里的路线是:

$route['home'] = "controllername";

然后调用index函数。我怎样才能像在Laravel中一样提到我需要调用的函数呢?

我想这就是你想要的

$route['home'] = "controllername/functionname"
你可以在网站上找到很多例子


Codeigniter-3还支持回调函数。您可以查看详细信息

是的,您可以使用路由调用控制器的任何函数,如下所示

$route['home'] = "YourController/Yourfunction"

如果您想为函数传递参数,则当您点击时,它会将您重定向到“Yourfunction”

$route['home/(any:)'] = "yourcontroller/yourfunction"
$route['home/(any:)/num:'] = "yourController/yourfunction/$1/$2"
(any:)-对于字符串,num:对于数值参数,您也可以使用regexp

您可以按$1$2等重新排序参数:

 $route['home/(any:)/num:'] = "yourcontroller/yourfunction/$2/$1"
链接看起来像这样:

home/blog/3

函数将被调用:
yourfunction(3,'blog')

我不知道拉威尔,但我想这就是你想要的
$route['home']=“controllername/functionname”
我试过了,成功了。我想结构非常糟糕,当控制器位于文件夹中时,它可能会变得混乱
$route['home']=“foldername/controllername/functionname”
@ShaifulIslam-你能把它作为一个答案发布,这样我就可以把它标记为正确的答案吗?是的
foldername/controllername/functionname
令人困惑。记住,你可以把一层文件夹放在controller文件夹下。更多层文件夹将不起作用。