我正在使用codeigniter latest version
。我制作了一些控制器,每当我想通过URL
传递参数到index()
函数时,它就会给出错误信息。但如果函数不是index()
,它的效果非常好。这就是我试图实现这一目标的方式。
My URL: localhost/ci_project/index/argument
class Index extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function index($arg = null){
echo $arg; // ERROR 404 Page not found
$this->load->view('index',array('data'=>null));
}
public function other($arg = null){
echo $arg;
$this->load->view('other',array('data'=>null));
}
}
此URL: localhost/ci_project/other/argument
工作正常,但如果我将控制器other
替换为index
,则会显示错误消息404 Page not found
。有什么建议?提前谢谢。
如果单击以下链接,则应传递参数。
<a href="<?php echo base_url();?>index/argument">Click to pass an argument</a>
答案 0 :(得分:1)
首先,回复你的网址:
<a href="<?php echo base_url(); ?>/index/argument">Click to pass an argument</a>
----------------------------------^
我刚用这个Html创建了一个模拟测试:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div><a href="<?php echo base_url('tester'); ?>/index/argument">Click to pass an argument</a></div>
</body>
</html>
和这个PHP代码:
class tester extends CI_Controller{
function __construct() {
parent::__construct();
}
public function index($arg = 'null'){
var_dump($arg);
$this->load->view('tester');
}
}
结果是:
string(8) "argument"
Click to pass an argument
答案 1 :(得分:0)
这里你的类名是索引,函数名也是索引,因此PHP认为你的函数索引是一个构造函数,因为函数名与类名相同,因此你遇到了问题
答案 2 :(得分:-1)
尝试
<?php echo base_url();?>/Index/index/argument
我在这里想说的是,将其传递给www.website.com/controller/function/argument