404点击每个链接时代码点火器localhost出错?

时间:2016-04-26 07:18:06

标签: php codeigniter

我是代码点火器的新手,我按照教程编写了所有代码 http://www.tutorialspoint.com/codeigniter/working_with_database.htm 我一步一步地按照它包含的内容,但在xampp中使用url localhost / student / index.php / stud访问我的页面时,它显示的是我们期望的输出,但是当点击编辑或删除链接时,它将转到url localhost / new / localhost / new / index.php / stud / delete / 1和localhost / new / localhost / new / index.php / stud / edit / 1显示404错误

我的控制器Stud_controller

  <?php
        defined('BASEPATH') or exit('no direct access script');
       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); 
  } 

  public function update_student_view() { 
     $this->load->helper('form'); 
     $roll_no = $this->uri->segment('3'); 
     $query = $this->db->get_where("stud",array("roll_no"=>$roll_no));
     $data['records'] = $query->result(); 
     $data['old_roll_no'] = $roll_no; 
     $this->load->view('Stud_edit',$data); 
  } 

  public function update_student(){ 
     $this->load->model('Stud_Model');

     $data = array( 
        'roll_no' => $this->input->post('roll_no'), 
        'name' => $this->input->post('name') 
     ); 

     $old_roll_no = $this->input->post('old_roll_no'); 
     $this->Stud_Model->update($data,$old_roll_no); 

     $query = $this->db->get("stud"); 
     $data['records'] = $query->result(); 
     $this->load->view('Stud_view',$data); 
  } 

  public function delete_student() { 
     $this->load->model('Stud_Model'); 
     $roll_no = $this->uri->segment('3'); 
     $this->Stud_Model->delete($roll_no); 

     $query = $this->db->get("stud"); 
     $data['records'] = $query->result(); 
     $this->load->view('Stud_view',$data); 
  } 
  } 
  ?>

我的模特Stud_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); 
  } 
  } 

 ?>

MY Views stud_add

   <html>

   <head> 
       <meta charset = "utf-8"> 
        <title>Students Example</title> 
    </head> 

   <body> 
        <form method = "" action = "">

     <?php 
        echo form_open('Stud_controller/add_student');
        echo form_label('Roll No.'); 
        echo form_input(array('id'=>'roll_no','name'=>'roll_no')); 
        echo "<br/>"; 

        echo form_label('Name'); 
        echo form_input(array('id'=>'name','name'=>'name')); 
        echo "<br/>"; 

        echo form_submit(array('id'=>'submit','value'=>'Add')); 
        echo form_close(); 
     ?> 

  </form> 

Student_Edit

         <!DOCTYPE html> 
        <html lang = "en">

         <head> 
         <meta charset = "utf-8"> 
            <title>Students Example</title> 
            </head> 

          <body> 
  <form method = "" action = "">

     <?php 
        echo form_open('Stud_controller/update_student'); 
        echo form_hidden('old_roll_no',$old_roll_no); 
        echo form_label('Roll No.'); 
        echo form_input(array('id'=>'roll_no',
           'name'=>'roll_no','value'=>$records[0]>roll_no)); 
        echo "<br/>"; 

        echo form_label('Name'); 
        echo form_input(array('id'=>'name','name'=>'name',
           'value'=>$records[0]->name)); 
        echo "<br/>"; 

        echo form_submit(array('id'=>'submit','value'=>'Edit')); 
        echo form_close();
     ?> 

  </form> 

Stud_view

          <!DOCTYPE html> 
               <html lang = "en">

                   <head> 
               <meta charset = "utf-8"> 
                   <title>Students Example</title> 
                </head>

               <body> 
                   <a href = "<?php echo base_url(); ?>
                           index.php/stud/add_view">Add</a>

  <table border = "1"> 
     <?php 
        $i = 1; 
        echo "<tr>"; 
        echo "<td>Sr#</td>"; 
        echo "<td>Roll No.</td>"; 
        echo "<td>Name</td>"; 
        echo "<td>Edit</td>"; 
        echo "<td>Delete</td>"; 
        echo "<tr>"; 

        foreach($records as $r) { 
           echo "<tr>"; 
           echo "<td>".$i++."</td>"; 
           echo "<td>".$r->roll_no."</td>"; 
           echo "<td>".$r->name."</td>"; 
           echo "<td><a href = '".base_url()."index.php/stud/edit/"
              .$r->roll_no."'>Edit</a></td>"; 
           echo "<td><a href = '".base_url()."index.php/stud/delete/"
              .$r->roll_no."'>Delete</a></td>"; 
           echo "<tr>"; 
        } 
     ?>
  </table> 

2 个答案:

答案 0 :(得分:0)

在application / config / routes.php中的

添加以下行:

/ *****学生路线*********************************** **************** /

$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';

答案 1 :(得分:0)

问题可能在config.php文件中:

// This is wrong
$config['base_url'] = 'localhost/codeIgniter/';

// This is right
$config['base_url'] = 'http://localhost/codeIgniter/';

我遇到了同样的问题并且进行了此修正工作。