Reputation: 362
Hey I am trying to update user profile by sending an id to controller. Every time I submit my form it gives me error missing argument. I have defined route and included id parameter in my controller function but then tooo I get the error.
Code for my controller is
public function update_avatar(Request $request,$id)
{
$this->validateInput($request);
$u = User::findOrFail($id);
dd($u);
//Handle the user upload of avatar
if($request->hasFile('avatar'))
{
$avatar = $request->file('avatar');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300,300)->save(public_path('/uploads/'.$filename));
}
$user = Auth::user();
$user->name = $request->name;
dd($user->name);
$user->email = $request->email;
if($request->password == null)
{
$user->password = $u->password;
}
$user->password = $request->password;
$user->avatar = $filename;
$user->role = 'admin';
$user->save();
return view('/adminPanel/adminProfile',array('user' => Auth::user()));
}
code of my view
<form class="form-horizontal" role="form" enctype="multipart/form-data" action="{{ route('profile', ['id' => $user->id]) }}" method="post">
And my route is
Route::post('/adminPanel/id/adminProfile',
'AdminProfileController@update_avatar')
->name('profile')->middleware('admin');;
Upvotes: 0
Views: 50
Reputation: 841
In your route use. You missing parenthesis. When you pass id or any value using route, you have must use parenthesis for this.
Route::post('/adminPanel/{id}/adminProfile','AdminProfileController@update_avatar')->name('profile')->middleware('admin');
Upvotes: 3