1

我真的被这个问题困住了

在 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

4

5 回答 5

2

第一步:改变这个.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";

step-4:用户类添加此功能

public function index(){
}
于 2013-08-25T05:19:07.247 回答
1

可能有2个问题:

1. 缺少路线

转到应用程序/routes.php

$route['user'] = "user";

2.如果你想在url中从外部调用它,你需要将函数公开。

所以,

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');
}
}

希望你的问题现在得到解决:)

于 2013-08-24T17:30:20.620 回答
1

控制器名称必须大写。所以,User而不是user.

class User extends CI_Controller
class Helloworld extends CI_Controller
...

文件名仍然是小写的。

除此之外,一切似乎都很好。

于 2013-08-25T05:26:51.917 回答
0

转到 application/config/routes.php

于 2020-04-25T18:16:15.383 回答
-3

看来你错过了一条路线。将以下行添加到您的routes.php文件中

$route['user'] = "user";

现在它应该按预期工作

于 2013-08-24T16:59:37.253 回答