skip to Main Content

I have a users table and a column supervised_by where I want the id of the user who created the new user. For example: get the id of the admin in supervised_by column of the user the admin creates.
users table

//migration file

    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->boolean('verified')->default(false);
            $table->timestamp('verified_at')->nullable();
            $table->string('password');
            $table->string('is_verified');
            $table->boolean('active')->nullable();
            $table->integer('supervised_by')->references('id')->on('users');
            $table->rememberToken();
            $table->timestamps();
            $table->softDeletes();
        });
    }

usercontroller

  public function register(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required|max:180',
            'email' => 'required|email|unique:users',
            'password' => 'required|max:15|min:8',
            // 'role' => 'required'

        ]);
        if ($validator->fails()) {
            return response()->json([
                'validation_errors' => $validator->messages(),
            ]);
        }
        else
        {
            $user = User::create([
                'name' => $request->name,
                'email' =>  $request->email,
                'password' => $request->password,
                'verified' => false,
                'role' => $request->role
            ]);

            return response()->json([
                'status' => 200,
                'code' => 'register',
                'message' => 'Registered successfully! You'll be able to log in once you are approved.',
                'data' => null,
                'error' => null,
            ]);

        }
    }

2

Answers


  1. (If i understood correctly), the admin who creates the new users is always logged in, so you can track the admin id with following line:

    $admin_id = Auth::user()->id;
    

    or,

    $admin_id = Auth::id();
    

    Also, dont forget to:

    use IlluminateSupportFacadesAuth;
    
    Login or Signup to reply.
  2. You can use auth()->user()->id to get who created the user.

    $user = User::create([
                'name' => $request->name,
                'email' =>  $request->email,
                'password' => $request->password,
                'verified' => false,
                'role' => $request->role,
                'supervised_by' => auth()->user()->id,
            ]);
    

    You can read the documentation about it from here

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search