[英]How to call Controller inside sub folder using codeigniter 3.0?
[英]How can i call controller inside sub folder in codeigniter
有人可以告诉我如何在子文件夹中调用控制器。 我正在尝试在控制器文件夹的第三级调用控制器,并且我通过谷歌搜索尝试了一些示例,但是所有示例均不起作用。 例如 :
HTTP://localhost/project/index.php /folder1/folder2/folder3/controller.php
在名称为MY_Router.php的applicaiton / core文件夹中创建文件,并将其放置在其中的代码下方,它将起作用:-
注意:此解决方案适用于Codeigniter 2.2.0
<?php
Class MY_Router extends CI_Router
{
Function MY_Router()
{
parent::CI_Router();
}
function _validate_request($segments)
{
if (file_exists(APPPATH.'controllers/'.$segments[0].EXT))
{
return $segments;
}
if (is_dir(APPPATH.'controllers/'.$segments[0]))
{
$this->set_directory($segments[0]);
$segments = array_slice($segments, 1);
/* ----------- ADDED CODE ------------ */
while(count($segments) > 0 && is_dir(APPPATH.'controllers/'.$this->directory.$segments[0]))
{
// Set the directory and remove it from the segment array
$this->set_directory($this->directory . $segments[0]);
$segments = array_slice($segments, 1);
}
/* ----------- END ------------ */
if (count($segments) > 0)
{
if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$segments[0].EXT))
{
show_404($this->fetch_directory().$segments[0]);
}
}
else
{
$this->set_class($this->default_controller);
$this->set_method('index');
if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$this->default_controller.EXT))
{
$this->directory = '';
return array();
}
}
return $segments;
}
show_404($segments[0]);
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.