Derzeit bin ich auf einer kleinen Website. Nachdem sich der Benutzer angemeldet hat, wird er auf seine Profilseite umgeleitet. bis jetzt habe ich die URLs mit dem folgenden Code geroutet:Profil URL mit URL Router
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';
}
}
Aber wie mache ich es von der Profilseite? Das Profil uri sollte wie folgt aussehen: http://example.com/Profile/USERNAME und sollte von überall zugänglich sein. Ich versuchte es mit
case '/Profile/' . $_SESSION['username']:
return new ProfilePageController;
zu tun, aber dann nur der angemeldete Benutzer seine eigene Seite zu sehen. Wie erkennt mein Router, dass nach Profil/einen Benutzernamen eingegeben hat? und wie könnte ich nach dem Login auf die Profilseite gehen? Kann ich zu Profil/routen und den Benutzernamen manuell hinzufügen?
Btw: Ich benutze NGINX pls nicht sagen, wie etwas .htaccess
Derzeit kann Ihre $ route-Variable nur statische Pfade lesen. Sie brauchen einen Weg, um den Pfad params zu extrahieren, wahrscheinlich Regex würde tun. Übergeben Sie dann dieses param-Array an den neuen ProfilePageController-Konstruktor. Sie werden Ihren Pfad params in der Steuerung haben – astroanu
Ich habe noch nie mit Regex gearbeitet ... Gibt es eine andere Lösung ...:/haha .. – lukas