ОБНОВЛЕНИЕ: Я уже решил, я не знаю, как, но теперь он работает, вот это новая функция обновления на случай, если какие-либо будущие пользователи столкнутся с подобной проблемой.
Предполагая, что переменная $ id происходит от функции, которая извлекает текущий идентификатор удаляемых данных, и предполагая, что у вас уже есть функция, которая создает папки в соответствии с именами пользователей, следующее должно работать !.
public function delete($id)
{
$this->db->where('id', $id);
$this->db->delete($this->table);
// If users closes his account, all of his folders should be deleted as well
$item = $this->get($id)->username;
//varDebug($item);
delete_files(FCPATH."assets/img/users/avatars/".$item, TRUE);
delete_files(FCPATH."assets/img/users/covers/".$item, TRUE);
delete_files(FCPATH."assets/img/users/status/".$item, TRUE);
rmdir("assets/img/users/avatars/".$item);
rmdir("assets/img/users/covers/".$item);
rmdir("assets/img/users/status/".$item);
}
У меня есть форма регистрации, в которой пользователи могут зарегистрироваться, чтобы создать свою учетную запись в моем приложении, и я даю им возможность загружать свои собственные фотографии и т. Д. Пока все работает хорошо.
Проблема возникает, когда пользователь и / или администратор удаляет учетную запись пользователя. Например, я, как администратор, решаю удалить учетную запись Брайана, все его папки также должны быть удалены.
Текущий вывод — это удаление всех (если их больше, чем его собственная учетная запись) папок вместо его собственной учетной записи.
Итак, вот что у меня есть в моей модели:
public function delete($id)
{
$this->db->where('id', $id);
$this->db->delete($this->table);
// If users closes his account, all of his folders should be deleted as well
$item = $this->get($id);
delete_files("assets/img/users/avatars/".$item['username']."/", TRUE);
delete_files("assets/img/users/covers/".$item['username']."/", TRUE);
delete_files("assets/img/users/status/".$item['username']."/", TRUE);
rmdir("assets/img/users/avatars/".$item['username']."/");
rmdir("assets/img/users/covers/".$item['username']."/");
rmdir("assets/img/users/status/".$item['username']."/");
}
Может кто-то помочь мне с этим?
Вы должны предоставить полный путь к delete_files()
, Легко сделано. Просто добавь FCPATH
к началу путей. Это предполагает, что assets
находится на том же уровне, что и application
а также system
, Отрегулируйте соответственно.
FCPATH
это абсолютный путь к той же папке, index.php
в.
delete_files(FCPATH."assets/img/users/avatars/".$item['username'], TRUE);
Вам не нужен косой черты на пути. Без вреда, если вы делаете, но delete_files()
все равно скину
Других решений пока нет …