File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Models/ReviewImage.php
Back
<?php /** * ReviewImage Model * Maps to `review_images` table */ require_once __DIR__ . '/../Core/Model.php'; class ReviewImage extends Model { protected string $table = 'review_images'; public function getImagesByReview(int $reviewId): array { $sql = "SELECT * FROM `review_images` WHERE `review_id` = :review_id ORDER BY `sort_order` ASC, `id` ASC"; return $this->fetchAll($sql, [':review_id' => $reviewId]); } public function addImage(int $reviewId, string $imagePath, int $sortOrder = 0): int { return $this->insert([ 'review_id' => $reviewId, 'image_path' => $imagePath, 'sort_order' => $sortOrder, 'created_at' => date('Y-m-d H:i:s') ]); } public function deleteImagesByReview(int $reviewId): bool { $images = $this->getImagesByReview($reviewId); foreach ($images as $img) { $this->removePhysicalFile($img['image_path']); } $sql = "DELETE FROM `review_images` WHERE `review_id` = :review_id"; $this->query($sql, [':review_id' => $reviewId]); return true; } public function deleteImageById(int $imageId, int $reviewId): bool { $img = $this->fetchOne("SELECT * FROM `review_images` WHERE `id` = :id AND `review_id` = :review_id LIMIT 1", [ ':id' => $imageId, ':review_id' => $reviewId ]); if ($img) { $this->removePhysicalFile($img['image_path']); $this->delete($imageId); return true; } return false; } private function removePhysicalFile(string $relativePath): void { $fullPath = __DIR__ . '/../../' . ltrim($relativePath, '/'); if (file_exists($fullPath) && is_file($fullPath)) { @unlink($fullPath); } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings