在laravel上传新内容后如何删除旧头像?

I was trying to delete old avatar after uploading new avatar. Just I couldn't find solution. I am new to laravel5, Could you help me? I am using a project from github. please look at "munafio cubetalk" on github. maybe I need to change something more. It doesn't delete user avatar also when user deletes his account.

    public function s_general(Request $request){
    $this->validate($request,[
        'username' => 'required|min:3|max:50',
        'avatar' => 'nullable|image|mimes:jpeg,png,jpg|max:1024',
        'fullname' => 'required',
        'email' => 'required|email'
    ]);
    if ($request['username'] == Auth::user()->username &&$request['fullname'] == Auth::user()->name && $request['email'] == Auth::user()->email && !$request->hasFile('avatar')) {
        return redirect()->back()->with('general_msg', Lang::get('trans.noChanges_MSG'));
    }else{
        $avatar = $request->file('avatar');
        if ($request->hasFile('avatar')) {
            $avatar_ext = $avatar->getClientOriginalExtension();
            $avatar_name = rand(9,999999999)+time().".".$avatar_ext;
            $avatar_new = $avatar->storeAs("avatar",$avatar_name);
        }else{
            $avatar_name = Auth::user()->avatar;
        }


        $update_general = User::where('uid',Auth::user()->uid)->update(['username' => $request['username'],'name' => $request['fullname'], 'email' => $request['email'],'avatar' => $avatar_name]);
        return redirect()->back()->with('general_msg', Lang::get('trans.changes_saved'));
    }

}

You can use laravel delete method to do that, make sure you import use Illuminate\Support\Facades\Storage; top of your controller class.

public function s_general(Request $request){
$this->validate($request,[
    'username' => 'required|min:3|max:50',
    'avatar' => 'nullable|image|mimes:jpeg,png,jpg|max:1024',
    'fullname' => 'required',
    'email' => 'required|email'
]);
if ($request['username'] == Auth::user()->username &&$request['fullname'] == Auth::user()->name && $request['email'] == Auth::user()->email && !$request->hasFile('avatar')) {
    return redirect()->back()->with('general_msg', Lang::get('trans.noChanges_MSG'));
}else{
    $avatar = $request->file('avatar');
    if ($request->hasFile('avatar')) {

        // update your code in here
        $avatar_name = Auth::user()->avatar;
        Storage::delete($avatar_name);

        $avatar_ext = $avatar->getClientOriginalExtension();
        $avatar_name = rand(9,999999999)+time().".".$avatar_ext;
        $avatar_new = $avatar->storeAs("avatar",$avatar_name);
    }else{
        $avatar_name = Auth::user()->avatar;
    }


    $update_general = User::where('uid',Auth::user()->uid)->update(['username' => $request['username'],'name' => $request['fullname'], 'email' => $request['email'],'avatar' => $avatar_name]);
    return redirect()->back()->with('general_msg', Lang::get('trans.changes_saved'));
}

}

Finally I solved it. I post my edited code. If someone needs help later.

  public function s_general(Request $request){

    $this->validate($request,[
        'username' => 'required|min:3|max:50',
        'avatar' => 'nullable|image|mimes:jpg,jpeg|max:1024',
        'fullname' => 'required',
        'location' => 'max:255',
        'bio' => 'max:340',
        'email' => 'required|email'
    ]);
    if ($request['username'] == Auth::user()->username &&$request['fullname'] == Auth::user()->name && $request['location'] == Auth::user()->location && $request['bio'] == Auth::user()->bio && $request['email'] == Auth::user()->email && !$request->hasFile('avatar')) {
        return redirect()->back()->with('general_msg', Lang::get('trans.noChanges_MSG'));
    }else{
    $avatar = $request->file('avatar');
    $user = Auth::user();
    $uid = Auth::user()->uid;
    $oldavatar = '/storage/avatar/'.$user->avatar;

    if ($request->hasFile('avatar')) {
        Storage::delete('$oldavatar');
        $avatar_ext = $avatar->getClientOriginalExtension();
        $avatar_name = $uid.".".$avatar_ext;
        $avatar_new = $avatar->storeAs("avatar",$avatar_name);
    }else{
        $avatar_name = Auth::user()->avatar;
    }


$update_general = User::where('uid',Auth::user()->uid)->update(['username' => $request['username'],'name' => $request['fullname'], 'bio' => $request['bio'], 'location' => $request['location'], 'email' => $request['email'],'avatar' => $avatar_name]);

return redirect()->back()->with('general_msg', Lang::get('trans.changes_saved'));

}