如果在Laravel 4中删除了用户,如何删除用户的徽标?

时间:2014-11-25 02:58:20

标签: laravel laravel-4

描述

我的用户表中的数据库中有一个名为 logo_path 的字段。 logo_path只会将路径存储到徽标中。 我的 app / files / logo_path /

中还有一个logo_path文件夹

我有一个创建用户表单,在创建用户时,我允许用户上传他们想要的头像/徽标。

WORK

创建帐户的过程是有效的,上传也是有效的,文件也保存到我想要的地方。

问题

这是一个小问题,我现在在logo_path文件夹中有很多randoms照片。 所有这些都变得烦人,我想知道是否有一种方法可以删除该用户的徽标,如果该用户已被删除?

UserController - >破坏()

public function destroy($id){

    $user = User::find($id);
    $user->delete();

    return Redirect::to('/users/');

}

2 个答案:

答案 0 :(得分:2)

通常,这样的事情可能发生在不止一个地方。 Laravel的模型事件可以让您在一个地方可靠地执行此操作,而不是将它们全部记录在控制器中。

http://laravel.com/docs/4.2/eloquent#model-events

class User extends Eloquent {
    public static function boot() {
        parent::boot();

        User::deleted(function($user) {
            // now that the user has been deleted, delete their logo
            File::delete('path/to/logos/' . $user->logo);
        }
    }

}

答案 1 :(得分:1)

添加

$success = File::delete(base_path().'/app/files/logo_path/'.$user->logo_path);

更新:UserController

public function destroy($id){

    $user = User::find($id);
    $user->delete();
    $success = File::delete(base_path().'/app/files/logo_path/'.$user->logo_path);

    return Redirect::to('/users/');

}