Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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 如何在CI(codeigniter)中添加另一个控制器文件_Php_Codeigniter - Fatal编程技术网

Php 如何在CI(codeigniter)中添加另一个控制器文件

Php 如何在CI(codeigniter)中添加另一个控制器文件,php,codeigniter,Php,Codeigniter,这个标题似乎很愚蠢。但我遇到了问题, 现在我只需键入,然后路由到index.php/entry函数 但是当我打字的时候,我想路由到另一个控制器 然而,order.php不起作用! 我的环境有什么问题吗 现在,我不能在命令控制器下运行测试函数。相反,我应该打字 htpp://ci.tao2tw.com/index.php/order/test 我搞不懂 提前谢谢大家~ 在routes.php中 $route['default_controller'] = "index/entry"; $rout

这个标题似乎很愚蠢。但我遇到了问题, 现在我只需键入,然后路由到index.php/entry函数 但是当我打字的时候,我想路由到另一个控制器 然而,order.php不起作用! 我的环境有什么问题吗

现在,我不能在命令控制器下运行测试函数。相反,我应该打字 htpp://ci.tao2tw.com/index.php/order/test 我搞不懂

提前谢谢大家~

在routes.php中

$route['default_controller'] = "index/entry";
$route['order'] = "order"; 
$route['404_override'] = '';
在config.php中

$config['base_url'] = 'http://ci.tao2tw.com/';
$config['index_page'] = '';
在controller/index.php中,它可以正常工作

class Index extends CI_Controller {

    public function __construct() // to remember use public
    {
        parent::__construct(); 
        $this->load->helper('url');
        //anchor(); 
    }
    public function entry() //just show index
    {
        $this->load->view('index_view',$data);      

    }

}
在controller/order.php中没有工作

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Order extends CI_Controller {

    public function __construct() // to remember use public
    {
        parent::__construct(); 
        $this->load->helper('url');

    }
    public function fill($action) // 顯示填寫表單
    {
        echo "test";
    }
   //http://codeigniter.com/user_guide/libraries/uri.html
    public function order($action)
    {
        echo $action;
    }
}

?>

是的,你需要这样走:

$route['order'] = "order/order"; 
原因是,在将url路由到模型的方法之前,它无法知道要执行什么功能


现在,它将调用您的订单模块的订单方法

是的,您需要按如下方式发送它:

$route['order'] = "order/order"; 
原因是,在将url路由到模型的方法之前,它无法知道要执行什么功能


现在,它将调用order模块的order方法

在index.php文件之后,必须在CI中调用每个控制器

因此,如果不使用.htaccess文件,则指向订单控制器的链接如下所示:

http://ci.tao2tw.com/index.php/order/
htaccess允许跳过index.php文件

 RewriteRule ^(.*)$ index.php/$1 [L]
您可以通过以下方式调用控制器:

http://ci.tao2tw.com/order
然后,如果要调用订单控制器中的方法,则url为:

没有.htaccess

使用.htaccess


必须在index.php文件之后的CI中调用每个控制器

因此,如果不使用.htaccess文件,则指向订单控制器的链接如下所示:

http://ci.tao2tw.com/index.php/order/
htaccess允许跳过index.php文件

 RewriteRule ^(.*)$ index.php/$1 [L]
您可以通过以下方式调用控制器:

http://ci.tao2tw.com/order
然后,如果要调用订单控制器中的方法,则url为:

没有.htaccess

使用.htaccess


我想您对.htaccess文件有问题。 您的应用程序是否位于子文件夹中

RewriteEngine on
RewriteBase /path/to/app  [add this if your application is under a sub folder]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

<IfModule mod_php5.c>
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_php5.c>
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

我想您对.htaccess文件有问题。 您的应用程序是否位于子文件夹中

RewriteEngine on
RewriteBase /path/to/app  [add this if your application is under a sub folder]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

<IfModule mod_php5.c>
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_php5.c>
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

对不起,各位。我找到了解决办法 我真傻。 我使用apache2和hava作为虚拟主机,文件路径为:/etc/apache2/sites enabled/ci.tao2tw.com


我必须将AllowOverride None更改为AllowOverride All

对不起,各位。我找到了解决办法 我真傻。 我使用apache2和hava作为虚拟主机,文件路径为:/etc/apache2/sites enabled/ci.tao2tw.com


我必须将AllowOverride None更改为AllowOverride All

这对我不起作用,我将.htaccess文件放在ci的根文件夹下。但是它不起作用。但是现在我可以按类型访问订单,非常奇怪,不需要重新启动apache。这里是我的.htaccess文件[在pastebin上]。你必须将文件放在网站顶部的/文件夹中。你好,谢谢你的热情支持。这不起作用,我更新了我的帖子。嗯,也许你应该删除$route['order']=order;此外,似乎无法读取.htaccess。尝试在.htaccess中写入一个错误,如rewriteruuuule,并告诉我是否存在内部服务器错误。这对我不起作用,我将.htaccess文件放在ci的根文件夹下。但是它不起作用。但是现在我可以按类型访问订单,非常奇怪,不需要重新启动apache。这里是我的.htaccess文件[在pastebin上]。你必须将文件放在网站顶部的/文件夹中。你好,谢谢你的热情支持。这不起作用,我更新了我的帖子。嗯,也许你应该删除$route['order']=order;此外,似乎无法读取.htaccess。尝试在.htaccess中写入一个错误,例如rewriteruuule,并告诉我是否存在内部服务器错误。如果不工作,我应该附加index.php/order/,然后我可以访问它。非常有线>不工作,我应该附加index.php/order/然后我可以访问它。非常有线>