Heim  >  Artikel  >  Backend-Entwicklung  >  codeigniter我的删除不知道是不能传参还是路由问题

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

WBOY
WBOYOriginal
2016-06-23 14:00:10834Durchsuche


路由是这样的
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';的前面,否则会背后截获

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn