Codeigniter无法找到未找到的控制器功能404

时间:2015-10-09 10:32:03

标签: php codeigniter

我正在尝试使用Codeigniter创建一个Web应用程序。但我无法浏览我的网页。示例:我希望页面employee_view中的按钮导航到employeecontroller / addEmployee。我在网上/ stackoverflow搜索了几个小时。尝试了一切,有5个各种错误信息。我厌倦了搜索,希望有人可以帮助我:)。

这是我工作区和代码的图片:

Image Link here

我的路线。 php:

$route['default_controller'] = 'EmployeeController';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['EmployeeController/addEmployee'] = 'EmployeeController/addEmployee';
$route['EmployeeController/createEmployee'] = 'EmployeeController/createEmployee';
$route['EmployeeController'] = 'application/controllers/EmployeeController';
在config.php中的

我得到了:

$config['base_url'] = 'http://localhost:8888/BoMaTec_afstudeerproject/CodeIgniter-3.0.1/';

$config['index_page'] = '';

我的ht.acces文件: [IMG] http://i58.tinypic.com/euq2vk.png[/IMG]

5 个答案:

答案 0 :(得分:5)

确保所有关闭控制器类和文件名的第一个字母为大写。

答案 1 :(得分:2)

我假设你使用codeigniter 3。

在codeigniter 3上,控制器文件名必须将第一个字母设为大写,然后是其余小写。

如果控制器名称是EmployeeController,我会更改名称

文件名: Employee_controller.php

class Employee_controller extends CI_Controller {

}

然后在路线上:http://www.codeigniter.com/user_guide/general/routing.html

注意:默认控制器必须在application/controllers/Employee_controller.php中,default_controller不能与其他所有路径都可以使用的子文件夹一起使用。

$route['default_controller'] = 'employee_controller';
$route['employee/addEmployee'] 'employee_controller/addEmployee';
$route['employee/createEmployee'] = 'employee_controller/createEmployee';
$route['employee'] = 'employee_controller';

网址示例

http://localhost:8888/BoMaTec_afstudeerproject/CodeIgniter-3.0.1/employee

或者

http://localhost:8888/BoMaTec_afstudeerproject/CodeIgniter-3.0.1/index.php/employee

在自动加载中,最常用的助手是

$autoload['helper'] = array('url', 'form', 'text');

答案 2 :(得分:1)

config.php

中进行更改
$config['base_url'] = '';
$config['index_page'] = '';

在控制器中

文件名 - employee.php

里面的

<?php

    if (!defined('BASEPATH'))
        exit('No direct script access allowed');

    class Employee extends CI_Controller {

        public function index()
        {
            # code...
        }

        public function addEmployee()
        {
            # code...
        }

    }

并在autoload.php

$autoload['helper'] = array('url');

并且<form> action应该是

<form action="<?php echo base_url()?>employee/addEmployee" method="post">

</form>

这将很好

编辑01

将其放在.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

答案 3 :(得分:0)

控制器名称应该与Employeecontroller类似,因为类名不能包含多于1个大写字母。

在您的路线中应该是:

$route['default_controller'] = 'employeecontroller';

答案 4 :(得分:0)

您也可以写:-

<form method = "post" action = "<?php echo site_url("EmployeeController/addEmployee");? 
 >">

以这种方式:

<form method = "post" action = "<?php echo site_url();?>/Employee_controller/addEmployee">

并将名称从EmployeeController更改为Employee_controller。

这对我有帮助。