初始化仓库及v1.0.0提交
This commit is contained in:
65
app/Models/Personality.php
Normal file
65
app/Models/Personality.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Config\Database;
|
||||
|
||||
class Personality
|
||||
{
|
||||
public static function findAll(): array
|
||||
{
|
||||
$db = Database::getInstance();
|
||||
$stmt = $db->query('SELECT * FROM personalities ORDER BY id ASC');
|
||||
return $stmt->fetchAll();
|
||||
}
|
||||
|
||||
public static function findById(int $id): ?array
|
||||
{
|
||||
$db = Database::getInstance();
|
||||
$stmt = $db->prepare('SELECT * FROM personalities WHERE id = :id');
|
||||
$stmt->execute(['id' => $id]);
|
||||
$result = $stmt->fetch();
|
||||
return $result ?: null;
|
||||
}
|
||||
|
||||
public static function create(array $data): array
|
||||
{
|
||||
$db = Database::getInstance();
|
||||
$stmt = $db->prepare('INSERT INTO personalities (name, prompt, description, icon, is_preset, created_by) VALUES (:name, :prompt, :description, :icon, :is_preset, :created_by)');
|
||||
$stmt->execute([
|
||||
'name' => $data['name'],
|
||||
'prompt' => $data['prompt'],
|
||||
'description' => $data['description'] ?? null,
|
||||
'icon' => $data['icon'] ?? null,
|
||||
'is_preset' => $data['is_preset'] ?? 0,
|
||||
'created_by' => $data['created_by'] ?? null,
|
||||
]);
|
||||
|
||||
return self::findById((int) $db->lastInsertId());
|
||||
}
|
||||
|
||||
public static function update(int $id, array $data): bool
|
||||
{
|
||||
$db = Database::getInstance();
|
||||
|
||||
$fields = [];
|
||||
$params = ['id' => $id];
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$fields[] = "{$key} = :{$key}";
|
||||
$params[$key] = $value;
|
||||
}
|
||||
|
||||
$sql = 'UPDATE personalities SET ' . implode(', ', $fields) . ' WHERE id = :id';
|
||||
$stmt = $db->prepare($sql);
|
||||
|
||||
return $stmt->execute($params);
|
||||
}
|
||||
|
||||
public static function delete(int $id): bool
|
||||
{
|
||||
$db = Database::getInstance();
|
||||
$stmt = $db->prepare('DELETE FROM personalities WHERE id = :id');
|
||||
return $stmt->execute(['id' => $id]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user