2015-06-07 14 views
6

ho provato a creare alcuni controller, modelli e viste con - trattino, ma ottengo errore php sempre così sto usando il carattere di sottolineatura adesso.Classe URI Codeigniter come posso usare - trattino invece _ underscore?

quindi il mio url è: http://localhost:8888/ci/index.php/get_artist_discography/artist_name

vorrei essere così: http://localhost:8888/ci/index.php/get-artist-discography/artist-name

sua possibile avere gli URL con - trattino in CodeIgniter?

il mio codice:

/controller:

<?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); 


    } 

} 

/modelli:

<?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; 
     } 

    } 
} 

risposta

10

Sì, è possibile.

In genere CI produce url come questo base_url/Nome_controllo/Nome_misura.

Come sapete, il nome del controller e il nome del metodo non possono contenere '-' (trattino) in modo da non poter cambiare il loro nome.

Cosa si può fare è utilizzare il router per mostrare il controller corretto con l'url corrispondente.

Come è possibile scrivere il codice a vostra config/routes.php

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

Questo eseguirà il controller get_artist_discography e artist_name metodo se il collegamento è http://localhost:8888/ci/index.php/get-artist-discography/artist-name

si può imparare di più su URI Routing at CI docs

+0

perfetto, funziona alla grande. – Raduken

10

se stai usando Codeigniter 3 apri la tua config/routes.php

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

Sì se il nome del controller e del metodo è lo stesso con l'URL, solo con trattino e trattino basso e si utilizza CI-3 è possibile utilizzare questa soluzione. [Dettagli qui] (http://www.codeigniter.com/user_guide/general/ routing.html #-percorsi riservati) –