Domanda

Ciao ragazzi, sto cercando di creare profili utente per il mio sito in cui l'URL è qualcosa di simile

  

mysite.com/user/ChrisSalij

Al momento il mio controller si presenta in questo modo:

<?php   
class User extends Controller {
   function user(){
      parent::Controller();
   }

   function index(){
      $data['username'] =  $this->uri->segment(2);

      if($data['username'] == FALSE) {
         /*load default profile page*/
      } else {
         /*access the database and get info for $data['username']*/
         /*Load profile page with said info*/
      }//End of Else
   }//End of function
}//End of Class
?>

Al momento sto ottenendo un errore 404 ogni volta che vado a;

  

mysite.com/user/ChrisSalij

Credo che questo è perché si aspetta che ci sia un metodo chiamato ChrisSalij. Anche se sono sicuro che sto abusando del $ this-> uri-> segmento (); Anche comando: P

Qualsiasi aiuto sarebbe apprezzato. Grazie

È stato utile?

Soluzione

Il suo perché il controllore è alla ricerca di una funzione chiamata ChrisSalij.

I pochi modi per risolvere questo:

1) cambiamento

function index(){ 
$data['username'] =  $this->uri->segment(2);

essere

function index($username){ 
$data['username'] =  $username; 

e utilizzare l'URL di mysite.com/user/index/ChrisSalij

2) se non vi piace l'idea di essere dell'indice nell'URL è possibile modificare la funzione di essere chiamato profilo o simili, o considerare di usare di routing

e usare qualcosa lungo le linee di

$route['user/(:any)'] = "user/index/$1";

per mappare correttamente l'URL di mysite.com/user/ChrisSalij

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top