La méthode PATCH n'est pas autorisée à accéder aux routes de rôle. Prend uniquement en charge les méthodes GET, HEAD et POST
P粉986028039
2023-08-15 19:45:00
<p>Je souhaite utiliser Spatie Laravel pour créer des rôles et des autorisations. Je ne peux pas modifier mon personnage à cause d'une erreur : </p>
<blockquote>
<p>Le routage des rôles de la méthode PATCH n'est pas pris en charge. Les méthodes prises en charge sont : GET, HEAD, POST. </p>
</blockquote>
<p><strong>Contrôleur : </strong></p>
<pre class="brush:php;toolbar:false;">public function edit(string $id)
{
$role = Rôle :: trouver ($ 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')
->tout();
return view('roles.edit',compact('role','permission','rolePermissions'));
}
mise à jour de la fonction publique (Requête $request, chaîne $id)
{
$this->valider($request, [
'nom' => 'obligatoire',
'autorisation' => 'obligatoire',
]);
$role = Rôle :: trouver ($ id);
$role->nom = $request->input('nom');
$role->save();
$role->syncPermissions($request->input('permission'));
return redirect()->route('roles.index')
->with('success','Mise à jour du rôle réussie');
}</pré>
<p><strong>Modèle de lame :</strong></p>
<pre class="brush:php;toolbar:false;"><form action='{{ url('roles/') }}' method='post'>
@csrf
@method('PUT')
<div class="my-3 p-3 bg-body arrondi shadow-sm">
<a href='{{ url('roles') }}' class="btn btn-secondary">Return</a>
{!! Form::model($role, ['method' => 'PATCH','route' => ['roles.update', $role->id]]) !!}
<div class="mb-3 rangée">
<label for="permission" class="col-sm-2 col-form-label">Permission</label>
<div class="col-sm-10">
{{-- <input type="text" class="form-control" name='permission' value="{{ $role->permission }}" id="permission">
{!! Form::text('name', null, array('placeholder' => 'name','class' => 'form-control')) !!}
</div>
</div></pré>
<p><strong>路由:</strong></p>
<pre class="brush:php;toolbar:false;">Route::group(['middleware' => ['auth']], function() {
Route::resource('admin', adminController::class);
Route::resource('produk', produkController::class);
Route::resource('roles', roleController::class);
});</pré>
<p><br /></p>
Ajoutez
@method('PUT')
指令。通常情况下,PUT
方法用于在RESTful API中更新资源,Laravel会自动将其视为PATCH
requête sous forme HTML en vue d'édition.