Вопрос

Привет, ребята, я пытаюсь создать профили пользователей для своего сайта, URL-адрес которых выглядит примерно так:

mysite.com/user/ChrisSalij

В настоящее время мой контроллер выглядит так:

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

На данный момент я получаю ошибку 404 всякий раз, когда захожу;

mysite.com/user/ChrisSalij

Я думаю, это потому, что он ожидает появления метода ChrisSalij.Хотя я уверен, что неправильно использую $this->uri->segment();команда тоже :P

Любая помощь будет оценена по достоинству.Спасибо

Это было полезно?

Решение

Это потому, что контроллер ищет функцию ChrisSalij.

Несколько способов решить эту проблему:

1) изменить

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

быть

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

и используйте URL-адрес mysite.com/user/index/ChrisSalij.

2) если вам не нравится идея наличия индекса в URL-адресе, вы можете изменить функцию, которая будет называться профилем или тому подобным, или изучить возможность использования маршрутизация

и использовать что-то вроде

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

чтобы правильно сопоставить URL-адрес mysite.com/user/ChrisSalij

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top