2013-08-24 142 views
0

我真的坚持这个问题笨加载只默认控制器

CI中

我有一个名为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

+1

也许你在你的codeigntiter项目中有错误的路线。你能否复制你的routes.php文件内容? –

+0

$ route ['default_controller'] =“user”; $ route ['404_override'] =''; –

回答

0

可能有两个问题:

1.缺失的路线

转到application/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'); 
} 
} 

希望现在你的问题就解决了:)

+0

您不需要为每个控制器编写路由,因为它会胜过CI的目的。方法默认被认为是公开的。 – Shomz

-3

看来你缺少的路线。以下行添加到您的routes.php文件

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

现在应该按预期工作

+2

您不需要为每个控制器编写路由,因为它击败了CI的目的。 – Shomz

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(){ 
} 
+0

我解决了我的问题.. –

0

控制器名称必须大写。因此,User而不是user

class User extends CI_Controller 
class Helloworld extends CI_Controller 
... 

虽然文件名仍保持小写。

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