描述
我的用户表中的数据库中有一个名为 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/');
}
答案 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/');
}