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