| | |
| | | use PDO; |
| | | abstract class Model |
| | | { |
| | | protected array $errors = []; |
| | | protected ?string $table; |
| | | |
| | | abstract protected function validate (array $data): void; |
| | | |
| | | public function __construct(private Database $database) { |
| | | } |
| | | |
| | | |
| | | protected function addError(string $field, string $message): void { |
| | | $this->errors[$field] = $message; |
| | | } |
| | | |
| | | public function getErrors(): array { |
| | | return $this->errors; |
| | | } |
| | | |
| | | private function getTable() { |
| | | $parts = explode("\\", $this::class); |
| | | return strtolower(array_pop($parts)); |
| | | } |
| | | public function __construct(private Database $database) { |
| | | public function getInsertID(): string { |
| | | $conn = $this->database->getConnection(); |
| | | return $conn->lastInsertId(); |
| | | } |
| | | public function findAll(): array|bool |
| | | { |
| | |
| | | } |
| | | |
| | | public function insert(array $data) : bool { |
| | | if( ! $this->validate($data)) { |
| | | $this->validate($data); |
| | | |
| | | if(!empty($this->errors)) { |
| | | return false; |
| | | } |
| | | $columns = implode(", " , array_keys($data)); |