路由角色不支持 PATCH 方法。支持的方法:GET、HEAD、POST

问题描述 投票:0回答:1

我想使用 spatie laravel 授予角色权限。我无法编辑我的角色,因为错误: 路由角色不支持 PATCH 方法。支持的方法:GET、HEAD、POST。

我的代码:

控制器:

public function edit(string $id)
    {
        $role = Role::find($id);
        $permission = Permission::get();
        $rolePermissions = DB::table("role_has_permissions")->where("role_has_permissions.role_id",$id)
            ->pluck('role_has_permissions.permission_id','role_has_permissions.permission_id')
            ->all();
    
        return view('roles.edit',compact('role','permission','rolePermissions'));
    }
public function update(Request $request, string $id)
{
    $this->validate($request, [
        'name' => 'required',
        'permission' => 'required',
    ]);

    $role = Role::find($id);
    $role->name = $request->input('name');
    $role->save();

    $role->syncPermissions($request->input('permission'));

    return redirect()->route('roles.index')
                    ->with('success','Role updated successfully');
}

我的刀片:

@can('role-edit')
<a class="btn btn-primary" href="{{ route('roles.edit',$role->id) }}">Edit</a>
@endcan

路线:

Route::group(['middleware' => ['auth']], function() {
    Route::resource('admin', adminController::class);
    Route::resource('produk', produkController::class);
    Route::resource('roles', roleController::class);
});
php laravel laravel-blade spatie-activitylog
1个回答
0
投票
<form action="{{ route('roles.update', $role->id) }}" method="POST">
    @csrf
    @method('PUT') <!-- Add this line to use PUT/PATCH method -->
    <!-- Your form fields and content here -->
</form>
© www.soinside.com 2019 - 2024. All rights reserved.