uri セグメント 2 と 3 を使用すると機能しますが、uri セグメント 4 を追加すると機能しません。
URL は次のようになります... http://localhost/maruf/writing-qb/bcs/44th-bcs-english/how-has-the-phrase-digital-detox-通路で説明されましたか?
しかし、それは次のように表示されます... http://localhost/maruf/write-qb/bcs/how-has-the-phrase-digital-detox-been-explained-in-the - 通路?どちらの URL にも 404 が表示されます。
これが私のルーティング設定です。
$route['write-qb/(:num)'] = 'write-qb'; //動作します $route['write-qb/(:any)/(:any)'] = 'write-qb/write_qb_details/$1/$2'; //動作します $route['Written-qb/(:any)/(:any)/(:any)'] = 'Written-qb/Written_qb_answer/$1/$2/$3'; // 動作しません
私のコントローラーは...
public functionindex(){ $data['qb_list'] = $this->Question_bank_model->get_qb_with_category(FALSE); //フッターデータ $data['main_content'] = 'write_qb'; $this->load->view('include/template',$data); } // 正常に動作します public function write_qb_details($category, $slug = NULL){ $config['uri_segment'] = 2; $slug = $this->uri->segment(3); //データ $data['qb_list'] = $this->Question_bank_model->get_qb_with_category(FALSE); $data['qb_info'] = $this->Question_bank_model->get_qb_details($slug, $config['uri_segment']); if(empty($data['qb_info'])){ show_404(); } $data['url_slug'] = $data['qb_info']['qb_exam_slug']; $data['meta_title'] = $data['qb_info']['qb_exam']; $data['meta_description'] = $data['qb_info']['qb_exam_post_meta']; $data['meta_keywords'] = $data['qb_info']['qb_exam_post_tags']; //ビュー $data['main_content'] = 'write_qb_details'; $this->load->view('include/template',$data); } // 正常に動作します public function writed_qb_answer($slug = NULL, $slug2 = NULL){ $config['uri_segment'] = 2; $slug = $this->uri->segment(3); $slug2 = $this->uri->segment(4); //データ $data['qb_info'] = $this->Question_bank_model->get_qb_answer_details($slug, $slug2, $config['uri_segment']); if(empty($data['qb_info'])){ show_404(); } $data['url_slug'] = $data['qb_info']['qb_exam_question_slug']; $data['meta_title'] = $data['qb_info']['qb_exam_question']; $data['meta_description'] = $data['qb_info']['qb_exam_answer_meta']; $data['meta_keywords'] = $data['qb_info']['qb_exam_answer_tags']; //ビュー $data['main_content'] = '答え'; $this->load->view('include/template',$data); }// それは機能しません
しかし我のモデルは...
public function get_qb_details($slug = FALSE){ if($slug === FALSE){ $this->db->order_by('qb_post.qb_exam_slug', 'DESC'); $this->db->join('qb_category', 'qb_category.qb_category_name_slug = qb_post.qb_category_name_slug'); $this->db->where('qb_exam_active',1); $query = $this->db->get('qb_post'); return $query->result_array(); } $query = $this->db->get_where('qb_post', array('qb_exam_slug' => $slug)); $query->row_array(); を返す } パブリック関数 get_qb_answer_details($slug2 = FALSE){ if($slug2 === FALSE){ $this->db->where('qb_exam_answer_active',1); $query = $this->db->get('qb_exam_ans'); return $query->result_array(); } $query = $this->db->get_where('qb_exam_ans', array('qb_exam_question_slug' => $slug2)); $query->row_array(); を返す }
在制御器"Written_qb_answer"中、および在路由$route['Written-qb/(:any)/(:any)/(:any)'] = 'Written-qb/Written_qb_answer/$1/$2 /$3';中は、404 エラーが表示されます。
ルートが重複しています。
リーリードキュメントのコメントを参照してください:
コメント 1:
コメント 2:
コメント 3:
(:any) を使用する場合、ルートはフィルターではありません。あらゆるコンテンツを意味します! 1 つ目と 2 つ目はなぜ機能するのでしょうか?最初に数値をチェックするため、最初の数値で捕捉されないものは 2 番目の数値で捕捉され、3 番目の数値は機能しません。 if...else if...else...
## ではなく、if...else... のようなものです。 ##