В настоящее время я нахожусь на небольшом веб-сайте. После того, как пользователь вошел в систему, он перенаправляется на страницу своего профиля. до сих пор я не разбила URLs со следующим кодом:URL профиля URL-адрес маршрутизатора
public function route($uri)
{
$path = $uri;
switch ($path) {
case '/':
return new FrontPageController;
case '/login':
return new LoginFormPageController;
case '/action/login':
return new LoginController;
case '/register':
return new RegisterFormPageController;
case '/action/register':
return new RegisterController;
case '/Profile/' . :
return new ProfilePageController;
case '/logout':
return new LogoutController();
default:
echo 'error';
}
}
Но как я это сделать на странице профиля? Профиль uri должен быть таким: http://example.com/Profile/USERNAME и должен быть доступен из любого места. Я пытался сделать это с
case '/Profile/' . $_SESSION['username']:
return new ProfilePageController;
Но только авторизованный пользователь может видеть свою собственную страницу. Как распознать мой маршрутизатор, который после профиля/ввел имя пользователя? и как я мог возглавить после входа на страницу профиля? Могу ли я направить в профиль/и добавить имя пользователя вручную?
Btw: Я использую NGINX пожалуйста не говорите что-то вроде изменения .htaccess
В настоящее время ваша переменная $ route может читать только статические пути. вам нужен способ извлечения параметров пути, возможно, регулярное выражение. затем передайте этот массив param в новый конструктор ProfilePageController. у вас будут параметры вашего пути в контроллере – astroanu
Я никогда не работал с регулярным выражением раньше ... Есть еще одно решение ...:/haha .. – lukas