如何从Codeigniter中的URL获取控制器名称?

时间:2019-02-08 12:56:40

标签: php codeigniter-3

网址为:

https://localhost/caseTest/index.php/c_case_type_questions/master/c_case_type_questionset/id/1

我需要从上面的网址中获取 c_case_type_questions , 有什么办法可以简短地得到它吗?

3 个答案:

答案 0 :(得分:0)

使用此URL类的功能

$this->uri->segment(n); // n=1 for controller, n=2 for method, etc

有关更多详细信息,请访问此URL

https://www.formget.com/codeigniter-uri-segment/

答案 1 :(得分:0)

您还可以使用PHP“魔术常数” __CLASS__,如果在控制器中进行了评估,它将返回控制器的类名。

目前,我无法检查下一个想法,并且可能记不清了,但是我相信$this->router->class也应返回控制器的名称。 router类是在框架启动期间加载的,它将类和方法名称都存储为类的属性。

答案 2 :(得分:0)

在您的控制器上,

public function myController(){
        $data['controller_name'] = $this->router->fetch_class(); //this is currently holding your controller name

        $this->load->view('templates/header', $data);
        $this->load->view('my_directory/page', $data);
        $this->load->view('templates/footer');
    }

如果要在视图中显示控制器的名称,请在CI视图文件夹中创建一个名为my_directory的文件夹,其中包含page.php文件,并在其中编写以下代码。

<?php echo $controller_name; ?>