I have a users
, items
, user_item
tables. I need to populate the user_item
table with a user_id
and item_id
when a user is created.
so far, I have a basic registration function
public function register(Request $request) {
$user = User::create([
'name' => $request->name,
'user_type' => $request->user_type,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
$token = auth()->login($user);
return $this->respondWithToken($token);
}
So far it saves only to the users
table ofcourse.
I've looked at some documentations on using attach()
, however, I got stuck on this one..
In the register
function, i added a $item array:
$item = Item::create([
'user_id' => !!!!, -> How do I get the id of the inserted user
'instrument_id' => $request->instrument_id
]);
$user->role()->attach($item)
Also, what is role()
? is it a built-in laravel function?
Note that I haven't tried running this function since I got stuck on these problems. So I don't event know if it's gonna work.
Anyone help me on this one? I'm a laravel newbie and got really confused on the documentations.
the method create return the model it self after loading it's attributes from db, so when you want the user id just use
$user->id
aftercreate()
method.for the default permission that shipped with laravel it is spatie/laravel-permission
and to assign role to a user you can use: