Я работаю над cms для свойств / объявлений в oop php в учебных целях. У меня есть галерея фотографий для каждого объекта / объявления и три таблицы.
properties (id, location, price)
property_photo (id, property_id, photo_id)
photos (id, name, extension)
Я пытаюсь при нажатии кнопки «Удалить», где я удаляю свойства, автоматически удалить фотографии в property_photo и таблицу фотографий, которые связаны с этими свойствами, а также удалить их в папке моего проекта. В настоящее время я могу удалить свойства из таблицы свойств и из таблицы property_photo, но я не могу удалить эти фотографии из таблицы фотографий и из папки моего проекта. Любая помощь приветствуется. Вот мой код.
AdModel:
public function deleteProperty($id)
{
$this->db->query('DELETE FROM properties WHERE id=:id');
$this->db->bind(':id', $id);
if ($this->db->execute()) {
return true;
}
else {
return false;
}
}
public function deletePropertyPhoto($id)
{
$this->db->query('DELETE FROM property_photo WHERE property_id=:property_id');
$this->db->bind(':property_id', $id);
$this->db->query('DELETE FROM photos WHERE id=(SELECT photo_id FROM property_photo WHERE property_id=:property_id)');
$this->db->bind(':property_id', $id);
$this->db->execute();
}
AdsController:
public function addeleteAction()
{
$userinfo = $this->Auth->Auth(['admin', 'moderator']);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$this->Auth->isSet($_GET['id'], "ads/index");
if ($this->AdModel->deleteProperty($_GET['id'])) {
$photo = $this->AdModel->deletePropertyPhoto($_GET['id']);
if ($photo != false) {
if (file_exists('public/photos/' . $photo->name . '.' . $photo->extension)) {
unlink('public/photos/' . $photo->name . '.' . $photo->extension);
}
}
redirect('ads/index');
}
echo "Property is not found!!!";
}
}