2015-06-07 18 views
6

Próbowałem utworzyć kontrolery, modele i widoki za pomocą - łącznika, ale otrzymuję błąd php zawsze, więc używam podkreślenia w tej chwili.Kod URI Classign, jak mogę użyć - zamiast myślnika _ _ podkreślenie?

więc mój adres URL jest: http://localhost:8888/ci/index.php/get_artist_discography/artist_name

chciałbym być tak: http://localhost:8888/ci/index.php/get-artist-discography/artist-name

jego możliwości mają adresy URL z - myślnikiem w CodeIgniter?

mój kod:

/kontrolerów:

<?php 
include (APPPATH.'/libraries/REST_Controller.php'); 
class get_artist_discography extends REST_Controller { 

    function artist_name_get(){ 

    $data = new stdClass(); 
    $this->load->model('artist_model'); 
    $data = $this->artist_model->getAll();$this->response($data, 200); 


    } 

} 

/Modele:

<?php 
class artist_model extends CI_Model { 
    function getAll(){ 

     $q = $this->db->query("SELECT artist_discography,artist_name from music"); 

     if($q->num_rows() > 0) { 

      foreach ($q->result() as $row) { 
       $data [] = $row; 
      } 
      return $data; 
     } 

    } 
} 

Odpowiedz

10

Tak można.

Normalnie CI tworzy URL podobny do tego base_url/Controller_name/Method_name.

Jak wiadomo nazwa kontrolera i nazwa metody nie mogą zawierać "-" (łącznik), więc nie można zmienić ich nazwy.

Co możesz zrobić, to użyć routera, aby wyświetlić właściwy kontroler z odpowiednim adresem URL.

Jak można napisać ten kod na swojej config/routes.php

$route['get-artist-discography/artist-name'] ='get_artist_discography/artist_name'; 

ten będzie wykonywał swój kontroler get_artist_discography i artist_name metodę, jeśli link jest http://localhost:8888/ci/index.php/get-artist-discography/artist-name

Możesz dowiedzieć się więcej o URI Routing at CI docs

+0

idealny, działa świetnie. – Raduken

10

jeśli używasz Codeigniter 3 otwórz swoją konfigurację/routes.php

$route['translate_uri_dashes'] = TRUE; 
+0

Tak, jeśli nazwa kontrolera i metody jest taka sama jak w przypadku adresu URL, różni się jedynie myślnikiem i podkreśleniem, a używanie CI-3 umożliwia korzystanie z tego rozwiązania. [Szczegóły tutaj] (http://www.codeigniter.com/user_guide/general/ routing.html # reserved-routes) –