对codeigniter网址路由感到困惑

时间:2018-09-09 20:54:27

标签: php codeigniter

我想问一下CI系统,如果我有1个控制器,URL应该是:

http://localhost/apanel 这样一个控制器 Apanel 我想再次创建一个1控制器,并且对URL产生了影响?

新的控制者是用户,网址应为http://localhost/users 如果我想使网址像这样http://localhost/apanel/users

,该怎么办

4 个答案:

答案 0 :(得分:1)

我认为对您来说应该这么简单“ Apanel”是一个Controller,用户是Apanel Controller示例中的一个函数:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

~\AppData\Local\conda\conda\envs\xview\lib\json\encoder.py in default(self, o)
    178         """
    179         raise TypeError("Object of type '%s' is not JSON serializable" %
--> 180                         o.__class__.__name__)
    181 
    182     def encode(self, o):

TypeError: Object of type 'bytes' is not JSON serializable

所以网址

class Apanel extends CI_Controller {
   public function index(){
     echo "you are at Apanel index function";
   }
   public function users(){
     echo "you are at users function";
   }
}

将为您提供输出:(您正在使用Apanel索引功能)和

http://localhost/apanel

将为您提供输出:(您正在使用用户功能)

答案 1 :(得分:0)

这实际上很简单。首先阅读一些CI教程。

您的情况:http://localhost/apanel/users

这里是面板控制器,而用户是面板控制器下的功能。

参考:https://www.codeigniter.com/userguide3/general/urls.html

答案 2 :(得分:0)

在apanel controllerClass内使用此代码...

public function users(){
  require('Users.php');//calling Users Contrller class..
  $test = new Users();
  $test->methodYouWant();//call what method you wanto call..
}

答案 3 :(得分:0)

您应该尝试一下,为我工作:

$route['apanel/'] = "apanel/<method(default-- index)>";
$route['apanel/user'] = "apanel/<user-method>";

在您的应用程序中> config> routes.php。

希望这会有所帮助。 您可以在此处进行任何类型的路由。

例如:

$route['apanel'] = "apanel";
$route['apanel/create'] = "apanel/create";
$route['apanel/(:any)/user/(:any)'] = "apanel/user/$1/$2";
$route['apanel/(:any)/about/(:any)'] = "apanel/about/$1/$2";