php - The PUT method is not supported for this route. Supported methods: GET, HEAD, POST. while i use @method('PUT')

I've used the @method('PUT') in my blade, but it still says the PUT Method is not supported, does someone know what's wrong?

controller

My routes are: routes

This is my workshops controller edit parameter and storage.

public function edit(Workshops $workshops)
    {
        $result = compact('workshops');
        Json::dump($result);
        return view('admin.workshops.edit', $result);
    }
/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \App\Workshops  $workshops
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, Workshops $workshops)
{
    $this->validate($request,[
        'name' => 'required|unique:workshops' . $workshops->id,
        'datum' => 'required'. $workshops->id,
        'plaatsen' => 'required' . $workshops->id,
        'price' => 'required'
    ]);
    $workshops->name = $request->name;
    $workshops->datum = $request->datum;
    $workshops->plaatsen = $request->plaatsen;
    $workshops->price = $request->price;
    $workshops->save();
    session()->flash('success', 'The workshop has been updated');
    return redirect('admin/workshops');
}

Answer

Solution:

Look in your routes file, you need Route::put() for the route you are trying to use. https://laravel.com/docs/7.x/routing#basic-routing

Answer

Solution:

You need to define your route with PUT as shown below

Route::put('/admin/workshops/{id}', 'ControllerName@methodName');

Official Laravel Documentation

W3Schools

Answer

Solution:

You have to use like this

Route::post('/admin/workshops/{id}',  'ControllerNameController@methodName');

Source