1

When pressed the submit button nothing happens and did not update database. Please help me.

Controller:

public function update(Request $request, $id)
{
    $this->validate(request(), [
        'name' => 'required',
        'email' => 'required|email|unique:users',
         ]);

    //$user = Auth::user();       
    $user = user::where('id',$id)->update($request->except('_token','_method'));

    $user->name = request('name');
    $user->email = request('email');
    $user->password = bcrypt(request('password'));
    $user->firstname = $request->firstname;
    $user->middlename = $request->middlename;
    $user->lastname = $request->lastname;
    $user->birthday = $request->birthday;
    $user->nationality = $request->nationality;
    $user->gender = $request->gender;
    $user->civilstatus = $request->name;
    $user->mobilenum = $request->mobilenum;
    $user->worknum = $request->worknun;
    $user->workadd = $request->workadd;
    $user->homeadd = $request->homeadd;
    $user->email = $request->email;

    $user->save();

    return redirect(route('user.user.show'))->with('message','Announcement Updated Succesfully');;

}

edit.blade.php

        <form method="POST" action="{{ route('user.user.update', $user->id)}}">
            {{ csrf_field() }}
            {{ method_field('PATCH') }}
..
..
..
            <button type="submit" class="btn btn-primary">Submit</button>
            <a href="{{ route('user.user.show', $user->id)}}" class="btn btn-warning">Back</a>

Routes

      Route::get('users/{user}',  ['as' => 'user.user.show', 'uses' => 'UserController@index']);
      Route::get('users/edit/{user}',  ['as' => 'user.user.edit', 'uses' => 'UserController@edit']);
      Route::PATCH('users/update/{users}',  ['as' => 'user.user.update', 'uses' => 'UserController@update']);

Please help me. Thank you in advance!

3
  • Nothing in your Laravel log? Commented May 16, 2020 at 16:21
  • why you didn't use resource and where is post method ? Commented May 16, 2020 at 16:27
  • Hi, sorry Im really new with laravel. Commented May 16, 2020 at 16:31

1 Answer 1

5

From what i can see i think you're $request is not passing the unique validation on email.

since it's an update function leaving unique fields in a form (e.g. email - username) unchanged will result in a validation error try to bypass it with this:

 'email' => ['required','email',Rule::unique('users')->ignore($id)]
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.