abschluss
This commit is contained in:
46
app/Model/UserModel.php
Normal file
46
app/Model/UserModel.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
namespace Blog\Model;
|
||||
|
||||
use Blog\Entity\User;
|
||||
use Blog\Database\Database;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Modellklasse für Benutzer-bezogene Datenbankoperationen.
|
||||
*/
|
||||
class UserModel {
|
||||
/**
|
||||
* @var PDO Die Datenbankverbindung.
|
||||
*/
|
||||
private $db;
|
||||
|
||||
/**
|
||||
* Konstruktor. Stellt die Datenbankverbindung her.
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->db = Database::getConnection();
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt einen Benutzer anhand des Benutzernamens.
|
||||
*
|
||||
* @param string $username Der Benutzername.
|
||||
* @return User|null Das User-Objekt oder null, falls nicht gefunden.
|
||||
*/
|
||||
public function getUserByUsername(string $username):?User {
|
||||
$stmt = $this->db->prepare(<<<SQL
|
||||
SELECT id, username, password
|
||||
FROM users
|
||||
WHERE username = :username
|
||||
LIMIT 1
|
||||
SQL);
|
||||
$stmt->bindParam(':username', $username);
|
||||
$stmt->execute();
|
||||
|
||||
$row = $stmt->fetchObject();
|
||||
if(!$row)
|
||||
return null;
|
||||
|
||||
return new User($row->id, $row->username, $row->password);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user