如何在CodeIgniter中使用多个控制器



我需要在CodeIgniter 3中使用2个控制器。我有欢迎和贝宝控制器。在路由中,以前我有以下代码:

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

然后添加贝宝,我尝试了以下代码,但没有帮助:

//$route['(:any)'] = 'paypal/index';
//$route['Paypal'] = 'paypal/index';
//$route['Welcome/Paypal/(:any)'] = 'welcome/index';

我分别尝试过,也一起尝试过,但仍然得到了这样的结果:

404 Page Not Found
The page you requested was not found.

我需要写什么,为了使用我的贝宝控制器?

例如,如果您想转到URLhttps://example.com/paypal,则如果Paypal控制器具有index功能,则不需要路由。

如果你想用一种方法"购买"一双使用URLhttps://example.com/buy/socks的袜子,但想用PayPal控制器方法buy($item)处理这个请求,那么你需要一个$route

$route['buy/(:any)'] = 'paypal/buy/$1';

但如果您的"购买"URL是https://example.com/paypal/buy/socks,则不需要路线

唯一需要定义$route的时间是当您想要偏离CodeIgniter的controller/function[/arg1[/arg2[...]]URI模式时。

您的问题可能与路线无关。确保您遵守了控制器文件和类命名的CodeIgniter规则?文件名必须以大写字母开头,即Paypal.php,并且类定义必须与文件名完全匹配。即

class Paypal extends CI_Controller {

我从您的问题中得到的是,您希望将paypal控制器重新路由或重定向到welcome控制器。

如果我做对了,你可以简单地用redirect来做。。在paypal控制器中,使用constructindex中的redirect将您重定向到welcome控制器

最新更新