我真的遇到了这个问题
CodeIgniter中的我有一个名为user.php的控制器
它有两个函数getUser()和save()
当我尝试拨打http://localhost/CodeIginter/index.php/user/save
它总是调用getUser函数为什么?
class user extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function getUser()
{
$this->load->model('usermodel');
$data['query'] = $this->usermodel->get_last_ten_entries();
$this->load->view('users',$data);
}
function save()
{
$this->load->model('usermodel');
$this->usermodel->insert_entry();
$this->load->view('users');
}
}
我的.htaccess文件包含
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
我也无法加载另一个helloworld.php控制器
答案 0 :(得分:1)
步骤1:更改此.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /your_folder_name/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
第2步:application/config/config.php
$config['base_url'] = 'full_path';
$config['index_page'] = '';
第3步:application/config/routes.php
$route['default_controller'] = "user";
步骤4:用户类添加此功能
public function index(){
}
答案 1 :(得分:0)
可能有两个问题:
<强> 1。缺少路线:
转到 application / routes.php
$route['user'] = "user";
2.如果你想在网址中从外面打电话,你需要公开功能。
所以,
class user extends CI_Controller
{
function __construct()
{
parent::__construct();
}
public function getUser()
{
$this->load->model('usermodel');
$data['query'] = $this->usermodel->get_last_ten_entries();
$this->load->view('users',$data);
}
public function save()
{
$this->load->model('usermodel');
$this->usermodel->insert_entry();
$this->load->view('users');
}
}
希望你的问题现在解决了:)
答案 2 :(得分:0)
控制器名称必须大写。因此,User
代替user
。
class User extends CI_Controller
class Helloworld extends CI_Controller
...
文件名仍然是小写的。
除此之外,一切似乎都很好。
答案 3 :(得分:0)
转到application / config / routes.php
答案 4 :(得分:-3)
看来你错过了一条路线。将以下行添加到routes.php
文件
$route['user'] = "user";
现在它应该按预期工作