Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

M1k's avatar
Level 1

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>&nbsp;&nbsp;&nbsp;&nbsp;<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

0 likes
0 replies

Please or to participate in this conversation.