CodeIgniter控制器模型404错误


CodeIgniter controller model 404 error

我得到了一个404错误在我的CodeIgniter网站上,我已经看了看周围的其他答案和玩。htaccess,但尚未解决。它位于我的domain.co.uk/admin

控制器——

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Projects extends CI_Controller {
public function __construct()
{
    parent::__construct();
}
public function index() {
    $this->load->model('project');
    $data['projects']=$this->project->get_projects();
    echo"<pre>";print_r($data['projects']);echo"</pre>";
}
}

模型-

<?php
class Project extends CI_Model{
function get_projects($num=10,$start=0){
    $this->$db->select()->from('projects')->where('active',1)->order_by('date_added','desc')->limit($num,$start);
    $query=$this->db->get();
    return $query->result_array();
}
}

我还添加了这些路由-

$route['default_controller'] = 'projects';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

当前在我的域/admin文件夹中有这个。htaccess

RewriteEngine on
RewriteCond $1 !^(index'.php|assets|images|robots'.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

有没有人知道为什么我可能会得到一个404错误

您的$route['default_controller']变量有什么?(它应该在'application'config中定义)。

如果您有$route['default_controller'] = "Projects",您的索引URL应该是domain/admin/index.php/projectsdomain/admin/projects *

*你可以很容易地删除这个文件使用一个。htaccess文件与一些简单的规则。下面是这样一个文件的示例,使用"negative"方法,其中所有内容都被重定向,除了指定的项:

RewriteEngine on
RewriteCond $1 !^(index'.php|images|robots'.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
$config['index_page'] = '';

在codeigniter 3中,你应该始终将你的类和文件名的第一个字母作为模型、控制器和库的大写字母。

我还将项目模型重命名为Model_project.php,因为如果有相同的名称,codeigniter可能会感到困惑。

<<p>模型strong> Model_project.php
class Model_project extends CI_Model {
}
<<p>控制器strong> Project.php
class Project extends CI_Controller {
    public function __construct() {
       parent::__construct();
       $this->load->model('model_project');
    }
}

你可能需要设置路由

http://www.codeigniter.com/user_guide/general/routing.html

如果您使用的是codeigniter 3.0,那么请以大写字母开头更新您的MODEL和CONTROLLER,并且也不要像您在上述代码中所给出的那样为模型和控制器提供相同的名称。例如:

class Projects extends CI_Controller {
   //code comes here
}

在这个项目中,名字是绝对可以的,但要注意你的文件名也应该以大写字母Project.php开头另一个for model:

class Projects_model extends CI_Model {
       //code comes here
    }

这是使用codeigniter的正确方法,而且我已经告诉过您,MODEL和CONTROLLER文件名必须以大写字母开头。

谢谢. .希望对你有所帮助