Я хочу взять имя пользователя у каждого пользователя и указать путь к его профилю. поэтому путь должен быть localhost: 8080 / user, но я не могу заставить его работать. хотя я могу заставить его работать с id.
Заранее спасибо за помощь! :)
routes.json
":username": {
"controller": "User",
"method": "getProfileByUsername",
"params": {
"username": "string"
}
}
UserController.php
public function getProfileByUsername($username)
{
$userModel = new UserModel();
try {
$user = $userModel->getProfileByUsername($username);
} catch (\Exception $e) {
$properties = ['errorMessage' => 'User not found!'];
return $this->render('views/error.php', $properties);
}
$properties = ['user' => $user];
return $this->render('views/profile.php', $properties);
}
UserModel.php
public function getProfileByUsername($username)
{
$query = 'SELECT * FROM users WHERE username = :username';
$sth = $this->db->prepare($query);
$sth->execute(['username' => $username]);
$users = $sth->fetchAll(PDO::FETCH_CLASS, self::CLASSNAME);
if (empty($users)) {
throw new NotFoundException();
}
return $users[0];
}