sfarzoso
sfarzoso

Reputation: 1600

Missing required parameter when using injection

I have this route:

Route::resource('riskfields', RiskfieldsController::class)->except('show');

Within the RiskfieldController/edit I'm calling the edit view as:

public function edit(Riskfield $riskField)
{
    return view('riskfields.edit', [
        'riskField' => $riskField
    ]);
}

where Riskfield is the model.

So, inside edit.blade.php I have:

{{ Form::open(['route' => ['riskfields.update', $riskField->id], 'method' => 'put', 'autocomplete' => 'off']) }}

when I access to this endpoint: /admin/riskfields/1/edit

I get:

Missing required parameter for [Route: riskfields.update] [URI: admin/riskfields/{riskfield}] [Missing parameter: riskfield]. (View: /var/www/html/resources/views/riskfields/edit.blade.php)

The problem's that I have inject the model, so I don't know what's happening there.

This is the update method:

public function update(Riskfield $riskField, Request $request): RedirectResponse

Someone could help?

UPDATE:

dd ouput:

enter image description here

Upvotes: 1

Views: 65

Answers (1)

sfarzoso
sfarzoso

Reputation: 1600

This problem stopped me for half an hour, but I hope my answer will help someone. Essentially I have to change this:

public function edit(Riskfield $riskField)

into:

public function edit(Riskfield $riskfield)

The parameter must have the same name convention defined within the route, so I've executed php artisan route:list and it was admin/riskfields/{riskfield}

Hope to help someone.

Upvotes: 1

Related Questions