Сегмент URL – Профили пользователей – Codeigniter
-
11-09-2019 - |
Вопрос
Привет, ребята, я пытаюсь создать профили пользователей для своего сайта, 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