Amine
Amine

Reputation: 941

How to fix MethodNotAllowedHttpException error in Laravel 5.7?

I added a CRUD interface for my user's table, and instead of a delete button, I used a block button. Which blocks a user (sets bloque field in the database from 0 to 1). I added a new function in my controller called block which is supposed to do the job yet I get a MethodNotAllowedHttpException error every time I click the blocking button.

UserController

public function block($id)
{
    $user = User::find($id);
    $user->bloque = 1;
    $user->save();

    return redirect('/users')->with('success', 'Utilisateur bloqué');
}

The blocking HTML fragment

<form action="{{ route('users.block', $user->id)}}" method="get">
@csrf
    <!--  @method('DELETE')-->
    <button class="btn btn-danger" type="submit">Bloquer</button>
</form>

Routes

Route::get('/block', [
    'uses' => 'UserController@block',
    'as' => 'users.block'
]);

Upvotes: 1

Views: 66

Answers (1)

bgul
bgul

Reputation: 146

I think the problem is related to id value, It should be instantiated from $request object. Like:

public function block(Request $request)
{
    $user = User::find($request->id);
    $user->bloque = 1;
    $user->save();

    return redirect('/users')->with('success', 'Utilisateur bloqué');
}

Upvotes: 1

Related Questions