URL профиля пользователя Codeigniter - PullRequest
1 голос
/ 08 января 2012

У меня есть контроллер с именем user, который сейчас загружает страницу профиля пользователя

class user extends CI_Controller {

    public function __construct(){
        parent::__construct();
    }

    public function index($username = null){
        //load index page
        $this->load->view('profile/index');
    }

}

я также маршрутизировал его, чтобы я мог загрузить его из user / $ username в маршрутах

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

дело в том, что я хотел бы изменить его и позволить пользователям напрямую заходить в свои профили без ввода user / $ username и вместо $ usernamd, как mysite.com/$username...

Я пробовал, но это все испортило. Как я могу добиться этого?

Спасибо.

Ответы [ 3 ]

1 голос
/ 08 января 2012

Полагаю, единственный способ добиться чего-то подобного - это добавить все остальные контроллеры в файл маршрутов.

Вы можете попробовать что-то вроде этого

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

В сочетании с функцией _remapкак указано здесь .В вашем пользовательском контроллере.

0 голосов
/ 11 ноября 2013

Я использовал что-то подобное для своих пользователей;эта функция "p" в моем контроллере пользователей, mysite.com/users/p/$user_id, маршруты хороши, но я решил это так, вы также можете сделать это с помощью функции index, если вы не хотите что-то вроде "p"

function p() 
{
$total_slashes = count ( $this->uri->segment_array () );
$last = end ( $this->uri->segments );
if ($total_slashes == 3) {
$data ['userdetails'] = $this->users_model->userDetails ( $last );
// $last is our user_id
$this->load->view('profile/index');
}
}
0 голосов
/ 08 января 2012

Слышали ли вы о функции _remap ?Если вы замените функцию index () следующим образом:

public function _remap($username = null) {
    $this->load->view('profile/index');
}

Это, вероятно, будет работать.Вам не нужно использовать route.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...