Reputation: 223
i am trying to update user data with roles but unfortunately i am getting error please help me how can i resovle this issue thanks.
i am getting error please chack
Illegal string offset 'name'
https://flareapp.io/share/Bm01YzaP
Note i am using spaite laravel permission
return request
{
"_token": "6uupkcqfyN8eqmnXTRztBXostJur03a8g3iTaRbC",
"_method": "put",
"name": "zubair",
"roles": [
"Employee"
],
"password": null,
"email": "[email protected]"
}
controller
public function update(Request $request, $user)
{
return $request->all();
$user['name'] = $request->name;
if ($request->password) {
$user['password'] = Hash::make($request->password);
}
$user['email'] = $request->email;
$user->update($user);
$user->syncRoles($request->roles);
return redirect()->intended('user');
}
Upvotes: 0
Views: 273
Reputation: 359
Your controller update
method can be better written using Laravel Route Resource Binding as:
public function update(Request $request, User $user)
{
$user->name = $request->name;
if ($request->password) {
$user->password = Hash::make($request->password);
}
$user->email = $request->email;
$user->save();
$user->syncRoles($request->roles);
return redirect()->intended('user');
}
Upvotes: 1
Reputation: 378
I hope you have a // before your first return.. i cant have 2 returns on your function or all the code after the first return will not work.
After that you should declare your $user variable as a User Model like this:
public function update(Request $request, User $user) {
// your code
}
Upvotes: 1
Reputation: 387
Use proper route model binding update(Request $request, User $user)
Upvotes: 1