我是新手并且学习codeigniter我试图从网上下载一个简单的CRUD练习,但我仍然坚持路由。我尽力从先前的帖子和答案中查找解决方案,但失败了。 这是我的Stud_controller.php
<?php
class Stud_controller extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->database();
}
public function index() {
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->helper('url');
$this->load->view('Stud_view',$data);
}
public function add_student_view() {
$this->load->helper('form');
$this->load->view('Stud_add');
}
public function add_student() {
$this->load->model('Stud_Model');
$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);
$this->Stud_Model->insert($data);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
这是我的Stud_model.php
<?php
class Stud_Model extends CI_Model {
function __construct() {
parent::__construct();
}
public function insert($data) {
if ($this->db->insert("stud", $data)) {
return true;
}
}
public function delete($roll_no) {
if ($this->db->delete("stud", "roll_no = ".$roll_no)) {
return true;
}
}
public function update($data,$old_roll_no) {
$this->db->set($data);
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
}
}
?>
这是我的route.php
$route['default_controller'] = 'welcome';
$route['stud'] = "Stud_controller";
$route['stud/add'] = 'Stud_controller/add_student';
$route['stud/add_view'] = 'Stud_controller/add_student_view';
$route['stud/edit/(\d+)'] = 'Stud_controller/update_student_view/$1';
$route['stud/delete/(\d+)'] = 'Stud_controller/delete_student/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
我的config.php
$config['uri_protocol'] = 'REQUEST_URI';
我的.htaccess文件是
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我的网址= http://localhost/testing/index.php/stud 但错误是找不到404页面 请帮助我谢谢
答案 0 :(得分:0)
问题是控制器的名称。重命名控制器文件Stud.php
,然后将类声明的第一行更改为...
class Stud extends CI_Controller {
除了在config.php中你应该使用
,所有其他代码都可以保留,如问题所示$config['index_page'] = '';
一方面注意:该模型不需要__construct()
方法。
只有当子类需要在parent::__construct()
方法中为自己设置某些内容时,才需要调用__construct()
。也许PHP documentation更好地解释了它。