codeigniter我的删除不知道是不能传参还是路由问题

WBOY
Release: 2016-06-23 14:00:10
Original
838 people have browsed it


路由是这样的
PHP复制代码
$route['default_controller'] = 'pages/view';
 
$route['content/(:any)'] = 'content/view/$1';
$route['content'] = 'content';
$route['content/del/(:any)'] = 'content/del/$1';
$route['content/add'] = 'content/add';
$route['(:any)'] = 'pages/view/$1';
 
$route['404_override'] = '';
复制代码




控制器是这样的
PHP复制代码
 
        public function __construct()
        {
                parent::__construct();
                $this->load->model('content_model');
        }
        
        public function index()
        {
                $data['title'] = 'Content archive';
                $data['content'] = $this->content_model->get_content();
                
                $this->load->view('templates/header', $data);
                $this->load->view('content/index', $data);
                $this->load->view('templates/footer');
        }
        
        public function view($slug)
        {
                $data['content_item'] = $this->content_model->get_content($slug);
                
                if (empty($data['content_item']))
                {
                        show_404();
                }
                
                $data['title'] = $data['content_item']['title'];
                
                $this->load->view('templates/header', $data);
                $this->load->view('content/view', $data);
                $this->load->view('templates/footer');
        }
        
        public function add()
        {
                $this->load->helper('form');
                $this->load->library('form_validation');
                  
                $data['title'] = 'Add a content item';
                  
                $this->form_validation->set_rules('title', 'Title', 'required');
                $this->form_validation->set_rules('text', 'text', 'required');
                  
                if ($this->form_validation->run() === FALSE)
                {
                        $this->load->view('templates/header', $data);  
                        $this->load->view('content/add');
                        $this->load->view('templates/footer');
                    
                }
                else
                {
                        $this->content_model->set_content();
                        $this->load->view('templates/header', $data);
                        $this->load->view('content/add_success');
                        $this->load->view('templates/footer');
                }
        }
        
        public function del($slug)
        {
                $this->content_model->del_content($slug);
        }
 
}
复制代码


数据模型是这样的
PHP复制代码
 
        public function __construct()
        {
                $this->load->database();
        }
        
        public function get_content($slug = FALSE)
        {
                if ($slug === FALSE)
                {
                        $query = $this->db->get('content');
                        return $query->result_array();
                }
                  
                $query = $this->db->get_where('content', array('id' => $slug));
                return $query->row_array();
        }
        
        public function set_content()
        {
                $this->load->helper('url');
                
                $slug = url_title($this->input->post('title'), 'dash', TRUE);
                
                $data = array(
                        'title' => $this->input->post('title'),
                        'slug' => $slug,
                        'text' => $this->input->post('text')
                );
                
                return $this->db->insert('content', $data);
        }
        
        public function del_content($slug)
        {
                $this->db->where('id',$slug);
                $this->db->delete('content');
        }
}
复制代码


我http://localhost/ci//index.php/content/del/1
后就是404 Page Not Found
不知道是不能传参还是路由问题


回复讨论(解决方案)

如果象 http://localhost/ci/index.php/content/del/1 这样的 url 会找不到文件的话
就表示你的 web 服务器不支持 PATH_INFO

如果web 服务器不支持 PATH_INFO,
为什么
http://localhost/ci//index.php/content/1
确能显示文章

$route['content/(:any)'] = 'content/view/$1';

写路由的一个原则:会被包含的规则要写在包含他的规则上面,否则就应用不到了。

5楼正解,
$route['content/del/(:any)'] = 'content/del/$1';一定要放在
$route['content/(:any)'] = 'content/view/$1';的前面,否则会背后截获

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template