URL segmento - Perfis de usuário - CodeIgniter
-
11-09-2019 - |
Pergunta
Ei, eu estou tentando criar perfis de utilizador para o meu site onde o url é algo como
mysite.com/user/ChrisSalij
Atualmente minha aparência controlador assim:
<?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
?>
No momento eu estou recebendo um erro 404 sempre que eu ir para;
mysite.com/user/ChrisSalij
Eu acho que isso é porque ele está esperando que haja um método chamado ChrisSalij. Embora eu tenho certeza que estou fazendo mau uso do this-> uri-> segment $ (); comando também: P
Qualquer ajuda seria apreciada. Graças
Solução
É porque o controlador está à procura de uma função chamada ChrisSalij.
As poucas maneiras de resolver isso:
1) mudança
function index(){
$data['username'] = $this->uri->segment(2);
ser
function index($username){
$data['username'] = $username;
e usar a url do mysite.com/user/index/ChrisSalij
2) se você não gosta da idéia de ser índice no URL, você poderia alterar a função a ser chamado de perfil ou similar, ou olhar em usar roteamento
e uso algo ao longo das linhas de
$route['user/(:any)'] = "user/index/$1";
para mapear corretamente a URL de mysite.com/user/ChrisSalij