2017-06-08 101 views
0

IM删除在coneigniter2一排,但它需要我的404页 (您请求未找到页。)错误404笨2

这是我的代码

的Controler邮政

class Posts extends CI_Controller{ 


public function index(){ 
$data['title'] = 'Ultimos Post'; 
    $data['posts'] = $this->Post_model->get_posts(); 
    $this->load->view('templates/header'); 
    $this->load->view('posts/index',$data); 
    $this->load->view('templates/footer'); 
} 
    ... 

    public function delete($id){ 
     //apagar post pelo id 
     $this->Post_Model->delete_post($id); 
      redirect('posts'); 

    }} 

邮政型号

class Post_model extends Ci_Model{ 
    ... 

    public function delete_post($id) { 

       $this->db->where('id',$id); 
       $this->db->delete('posts'); 

     }} 

在View.php

<?php echo form_open('/posts/delete/'.$post['id']);?> 
<input type="submit" value="Delete" class="btn btn-danger" name="delete"> 

routes.php文件

$route['posts/create'] = 'posts/create'; 
$route['posts/(:any)'] = 'posts/view/$1'; 
$route['posts'] = 'posts/index'; 
$route['default_controller'] = "pages/view"; 
$route['(:any)'] = 'pages/view/$1'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 
+0

删除'$ id'争论就这样做解决来自c ontroller函数并使用'$ id = $ this-> uri-> segment(3);' – ImBS

+0

我得到了同样的错误,它找到了id,但是像这样[http:// localhost/blog/posts/delete/2 ] –

+0

请将您的'routes'配置添加到问题中。 –

回答

0

替换此代码

控制器

class Posts extends CI_Controller{ 
... 
    public function delete(){ 
     $id = $this->input->post('id'); 
     $this->Post_Model->delete_post($id); 
     redirect('posts'); 
    } 
} 

型号

class Post_model extends Ci_Model{ 
... 
    public function delete_post($id) { 
     $this->db->where('id',$id); 
     $this->db->delete('posts'); 
    } 
} 

查看

<?php echo form_open('/posts/delete'); ?> 
<input type="hidden" name="id" value="<?php echo $post['id']; ?>" /> 
<input type="submit" value="Delete" class="btn btn-danger" name="delete"> 
</form> 
+0

上使用此代码它不会收回该ID –

+0

如果有可能检查隐藏的输入,你可以得到ID在隐藏输入? – ImBS

+0

我坏你在哪里可惜它工作nows –

0

删除后您重定向其上的帖子, 哪个调用Posts控制器的索引功能。 在您的帖子控制器索引方法的问题,请分享该方法或自己检查它 。

+0

我在问题 –

0

根据您的配置,posts/delete/2路由到posts/view/delete/2。您routes配置更改为下面的代码:

$route['posts/create'] = 'posts/create'; 
$route['posts/delete/(:num)'] = 'posts/delete/$1'; 
$route['posts/(:any)'] = 'posts/view/$1'; 
$route['posts'] = 'posts/index'; 
$route['default_controller'] = "pages/view"; 
$route['(:any)'] = 'pages/view/$1'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 
0

控制器和路线

控制器

class Posts extends CI_Controller{ 
... 
    public function delete(){ 
    $id = $this->uri->segment(3); 
     $this->Post_model->delete_post($id); 
      redirect('posts'); 
    } 
} 

Route.php

$route['posts/delete/(:num)'] = 'posts/delete/$1'