Laravel 9.5 + Spatie: [Route: permission.update] [URI: permission-edit/{permission}] [Missing parameter: permission]
I have created a page where I can modify the name of my platform's permissions. I added the form to the page, added the page route in the web.php and added the edit and update controller to the permissioncontroller. When I press the submit button on the form I get this error: Missing required parameter for [Route: permission.update] [URI: permission-edit/{permission}] [Missing parameter: permission].
permission-edit.blade.php
<form method="POST" action="{{ route('permission.update', $permission) }}">
@csrf
@method('PUT')
<h6 class="mb-0">Rechte</h6>
</div>
<div class="col-6 text-end">
</div>
</div>
</div>
<div class="card-body p-3">
<div class="row">
<div class="col-md-6 mb-md-0 mb-4">
<input type="text" id="name" name="name" class="card border border-radius-lg d-flex align-items-center flex-row" value="{{ $permission->name }}" />
</div>
</div>
<input type="submit" value="Rechte bearbeiten" class="btn bg-gradient-dark mt-5">
</form>
Web.php
Route::get('/permissions', [PermissionController::class, 'permissions'])->name('permissions');
Route::get('/permission-create', [PermissionController::class, 'create'])->name('permission-create');
Route::post('/permissions', [App\Http\Controllers\PermissionController::class, 'store'])->name('permission.store');
Route::get('/permission-edit', [PermissionController::class, 'edit'])->name('permission-edit');
Route::post('/permission-edit/{permission}', [PermissionController::class, 'update'])->name('permission.update');
PermissionController.php
use Spatie\Permission\Models\Permission;
…
...
public function edit(Permission $permission)
{
return view('pages.permission-edit', compact('permission'));
}
public function update(Request $request, Permission $permission)
{
$validated = $request->validate(['name' => 'required']);
$permission->update($validated);
return to_route('permissions')->with('message', 'Permission updated.');;
}
Permissionindex.php
@foreach ($permissions as $permission )
<tr>
<td>
<div class="d-flex px-2 py-1">
<div>
</div>
<div class="d-flex flex-column justify-content-center">
<h6 class="mb-0 text-sm">{{ $permission->name }}</h6>
</div>
<td class="align-middle text-center text-sm"><a href="{{ route('permission-edit', $permission->id) }}" class="fas fa-pencil-alt ms-auto text-dark cursor-pointer" data-bs-toggle="tooltip" data-bs-placement="top" title="" aria-hidden="true" data-bs-original-title="Bearbeiten" aria-label="edit"></a> <span class="sr-only"></span>
<i class="far fa-trash-alt me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="" aria-hidden="true" data-bs-original-title="Löschen" aria-label="delete"></i><span class="sr-only">Delete</span>
</div>
</tr>
@endforeach
I have also tried different solutions using Patch, and changing post in Put/Patch. But I keep getting errors. Who can find the error for me? pls
Thanks
Laravel 9.5 PHP 8.2
Please or to participate in this conversation.