'Undefined variable $request

I'm trying to write a clean code in laravel By using trait For uploading img And I Have A Problem In The code

This Is The Controller

I Used this Also So It Can Work in The Controller

namespace App\Http\Controllers\Admin;

 use App\Http\Controllers\Controller;
 use App\Models\User;
 use App\Traits\Uploadimg;
 use Illuminate\Http\Request;
 use App\Http\Requests\Userstore;
 use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Facades\Validator;


class UserController extends Controller
{

This Is The Controller

public function store(Userstore $request)
{
    
        $user = new User();
        $user->name = $request->input('name');
        $user->email = $request->input('email');
        $user->password = Hash::make($request->input('password'));
        
        $user->uimg = $request->uimg;
        
        $this ->uimg($request -> uimg , 'uploads/users');

        
        // $file_extension = $request -> uimg -> getclientoriginalExtension();
        // $file_name = time ().'.'.$file_extension;
        // $path = 'uploads/users';
        // $request -> uimg -> move($path,$file_name);
        
        $user->save();
        return redirect()->back()->with(['success' => 'User has been added']);              
        

        
}

This is the Trait File

   <?php

     namespace App\Traits;


   Trait Uploading 

  {
    function uimg(){
     if($request->hasFile('uimg')){
         $file = $request->file('uimg');
        $extension = $file->getClientOriginalExtension();
        $filename = time() . '.' . $extension;
        $file->move('uploads/users/' , $filename);
        $user->uimg = $filename;
    }
    else{
        return $request;
        $user->uimg = '';
    }

    // $file_extension = $request -> uimg -> getclientoriginalExtension();
    //     $filename = time ().'.'.$file_extension;
    //     $path = 'uploads/users';
    //     $request -> uimg -> move($path,$filename);
    //     return $filename;
    
}     
}

I Want to Add the img to The Database Who Can i Do This



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source