404 找不到代码点火器页面


404 Page not found Codeigniter

我是codeigniter的新手。每当我单击编辑时,我都会从教程中制作 crud。

它链接到.. http://localhost/crud/index.php/users/edit/1

我得到的是 404 页面未找到。

我认为这只是控制器的 uri 或分页问题。会有什么问题?

用户.php - 控制器

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Users extends CI_Controller {
function __construct()
{
parent::__construct();
#$this->load->helper('url');
$this->load->model('users_model');
}
public function index()
{
$data['user_list'] = $this->users_model->get_all_users();
$this->load->view('show_users', $data);
}
public function add_form()
{
$this->load->view('insert');
}
public function insert_new_user()
{
$udata['name'] = $this->input->post('name');
$udata['email'] = $this->input->post('email');
$udata['address'] = $this->input->post('address');
$udata['mobile'] = $this->input->post('mobile');
$res = $this->users_model->insert_users_to_db($udata);
if($res){
header('location:'.base_url()."index.php/users/".$this->index());
}
}
public function delete_a_user($id)
{
$this->db->where('users.id',$id);
return $this->db->delete('users');
}
public function delete($id)
{
$this->users_model->delete_a_user($id);
$this->index();
}
public function update()
{
$mdata['name']=$_POST['name'];
$mdata['email']=$_POST['email'];
$mdata['address']=$_POST['address'];
$mdata['mobile']=$_POST['mobile'];
$res=$this->users_model->update_info($mdata, $_POST['id']);
if($res){
header('location:'.base_url()."index.php/users/".$this->index());
}
}
}

show_users.php - 视图/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CI CRUD</title>
<script type="text/javascript">
function show_confirm(act,gotoid)
{
if(act=="edit")
var r=confirm("Do you really want to edit?");
else
var r=confirm("Do you really want to delete?");
if (r==true)
{
window.location="<?php echo base_url();?>index.php/users/"+act+"/"+gotoid;
}
}
</script>
</head>
<body>
<h2> Simple CI CRUD Application </h2>
<table width="600" border="1" cellpadding="5">
<tr>
<th scope="col">Id</th>
<th scope="col">User Name</th>
<th scope="col">Email</th>
<th scope="col">Mobile</th>
<th scope="col">Address</th>
<th scope="col" colspan="2">Action</th>
</tr>
<?php foreach ($user_list as $u_key){ ?>
<tr>
<td><?php echo $u_key->id; ?></td>
<td><?php echo $u_key->name; ?></td>
<td><?php echo $u_key->email; ?></td>
<td><?php echo $u_key->address; ?></td>
<td><?php echo $u_key->mobile; ?></td>
<td width="40" align="left" ><a href="#" onClick="show_confirm('edit',<?php echo $u_key->id;?>)">Edit</a></td>
<td width="40" align="left" ><a href="#" onClick="show_confirm('delete',<?php echo $u_key->id;?>)">Delete </a></td>
</tr>
<?php }?>
<tr>
<td colspan="7" align="right"> <a href="<?php echo base_url();?>index.php/users/add_form">Insert New User</a></td>
</tr>
</table>
</body>
</html>

您忘了在控制器中添加函数编辑。在您的情况下,它将是这样的:

function edit($id)
{
$mdata['name']=$_POST['name'];
$mdata['email']=$_POST['email'];
$mdata['address']=$_POST['address'];
$mdata['mobile']=$_POST['mobile'];
$res=$this->users_model->update_info($mdata, $id);
...
}

您有几个错误,首先您必须将"更新"方法重命名为"编辑"。

public function edit($id) {
   $mdata['name']    = $_POST['name'];
   $mdata['email']   = $_POST['email'];
   $mdata['address'] = $_POST['address'];
   $mdata['mobile']  = $_POST['mobile'];
   $res = $this->users_model->update_info($mdata, $id);
   if($res)
      // this is wrong too.. $this->index() execute the index method
      // header('location:'.base_url()."index.php/users/".$this->index());
      // use redirect function like this
      redirect('users/index');

}

PD:我是阿根廷人,我的英语水平很差。

我在控制器中看不到一个名为"edit"的功能。默认情况下,CI URL 的工作方式是第一段"用户"是控制器,即类名 (Users(。- 文件和类必须具有相同的名称。URL"edit"的第二段将是类中函数的名称。在您的情况下,您的URL正在查找类"用户"和该类中名为"edit"的函数,并且"edit"不存在!

添加这个。

public function edit(){
    // do your stuff here
}

在您的用户中.php - 控制器可能是一个功能编辑像什么:

  function edit() {
     $this->user_model->edi_user();
     redirect('http://url.com/user/');

}

在模型中:

public function edit_user(){
$id         = $this->session->userdata('user_id');
$data       = array(
'name'      => $this->input->post('name'), 
'lastname'  => $this->input->post('lastname'), 
);
$this->db->where('id', $id);
$this->db->update('users', $data);         
   }