Задать вопрос

Kohana, удаление категорий и фото в категориях, удаляет все фото, как исправить?

Здравствуйте, сделал удаление методом тыка по другим примерам, категорию удаляет и подкатегории все ок, добавил удаление фото у категории когда удаляешь категорию, так он удаляет все фото категорий что в разделе upload/cat
подскажите что не так сделал? нужно чтобы удалял категорию данной категории когда я ее удаляю, ну и если в ней есть подкатегории и фото, чтобы тоже удалял.

public function action_delete()
{
$id = (int)$this->request->param('id');
$cat = ORM::factory('category', $id);
        
if (!$cat->loaded())
{
$this->request->redirect('admin/category');
}
$cat->delete();
        
//delete sub cats
DB::delete('categories')
->where('parent_id', '=', $id)
->execute();
        
//delete not existed parent categories
$haveNotExisted = true;
while ($haveNotExisted)
{
$haveNotExisted = false;     
$cats = ORM::factory('category')
->find_all();
            
foreach ($cats as $cat)
{
if ($cat->parent_id != 0)
{
$parent = ORM::factory('category', $cat->parent_id);
if (empty($parent->id))
{
$cat->delete();
$haveNotExisted = true;
}
}
}
}
        
$directory = DOCROOT . implode(DIRECTORY_SEPARATOR, array('media', 'uploads', 'cat'));
        
$existed = ORM::factory('category')
->find_all()
->as_array('image_id', 'image_id');
        
foreach (scandir($directory) as $image)
{
if ($image != '.' && $image != '..' && $image != 'noimage.jpg' && !in_array($image, $existed))
{
@unlink('media/uploads/cat/' . $image);
@unlink('media/uploads/cat/small/small_' . $image);
@unlink('media/uploads/cat/small/admin/admin_' . $image);
}
}
$this->request->redirect('admin/category');
}
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы