public function edit($id){
$user_id = auth()->user()->id;
$user = User::find($user_id);
return view("edit")->with('user');
}
3 Réponses :
Vous devez spécifier des paramètres dans l'itinéraire URL.
<form action="{{ route('update', [ 'id' =>$user->id])}}" method="post" style="border:1px solid #ccc">
J'ai fait les modifications maintenant qu'il montre que la page ne peut pas être trouvée.
@MAMADOUBELLADIALLO Vérifiez si $ utilisateur-> id code> a la valeur correcte
@MAMADOUBELLADIALLO, Run PHP Artisan Itinéraire: Liste Code> Dans Terminal et vérifiez les itinéraires. Ensuite, prenez la page que vous recevez la page non trouvée, vérifiez son URL et essayez de trouver l'URL correspondant à partir de la commande itinéraire: liste code>. Vous pouvez voir s'il y a des erreurs dans l'URL de cette façon
Peut-être que c'est parce que vous n'avez pas le champ CSRF dans votre formulaire. Ajoutez cette entrée cachée dans votre formulaire.
<form action='{{ url("update/$user->id") }}' method='post'>
<input type="hidden"
name="_token"
id="csrf-token" value="{{ Session::token() }}" />
.
.
.
<!--the rest of your form-->
</form>
Maintenant, il montre que la page n'a pas pu être trouvée.
Vérifiez votre contrôleur :).
Je l'ai vérifié. Je l'ai mis pour rediriger vers la page d'accueil
// Edit link
<a href="{{ route('admin.tag.edit',$tag->id) }}" class="btn btn-info waves-effect">
<i class="material-icons">edit</i>
</a>
// blade file
<form method="POST" action="{{ route('admin.tag.update',$tag->id) }}">
@csrf
@method('PUT')
<div class="form-group form-float">
<div class="form-line">
<input value="{{ old('name') }}{{ $tag->name }}" name="name" type="text" class="form-control">
<label class="form-label">{{ __('Name') }}</label>
</div>
</div>
<br>
<a href="{{ route('admin.tag.index') }}"
class="btn btn-danger m-t-15 waves-effect">{{ __('BACK') }}</a>
<button type="submit" class="btn btn-primary m-t-15 waves-effect">{{ __('SUBMIT') }}</button>
</form>
// Route
Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'Admin','middleware'=>['auth','admin']], function (){
Route::resource('tag','TagController');
});
// Controller
public function edit($id)
{
$tag = Tag::find($id);
return view('admin.tag.edit',compact('tag'));
}
public function update(Request $request, $id)
{
$this->validate($request,[
'name' => 'required'
]);
$tag = Tag::find($id);
$tag->name = $request->name;
$tag->slug = str_slug($request->name);
$tag->save();
Toastr::success('Tag Successfully Updated','Success');
return redirect()->route('admin.tag.index');
}
Il montre trop peu d'arguments pour fonctionner application \ http \ contrôleurs \ homecontroller :: update (), 1 passède et exactement 2 attendu
Vous n'avez pas besoin
méthod_field code> pour la poste normale. Il est utilisé pour les demandes de patch et de suppression. Supprimez le champ Méthode ou utilisez plutôt les demandes de correctifs (et utilisezméthod_field ('patch') code>Ok je vois mais c'est toujours une méthode de montrage non autorisée.
Vous avez un problème avec
itinéraire () code> méthode d'assistance. Découvrez le doc: laravel.com/docs/5.7/helpers#method-Route - a>Je vous recommanderais également de regarder Didacticiel CRUD Laravel 5.6 Utilisation du contrôleur de ressources . Utiliser des ressources rend les choses beaucoup plus faciles