0
votes

Laravel App Modifier est montrant MethodNoTowedHttpException

public function edit($id){
    $user_id = auth()->user()->id;
    $user = User::find($user_id);
    return view("edit")->with('user');
}

4 commentaires

Vous n'avez pas besoin méthod_field 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 utilisez méthod_field ('patch')


Ok je vois mais c'est toujours une méthode de montrage non autorisée.


Vous avez un problème avec itinéraire () 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


3 Réponses :


1
votes

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">


3 commentaires

J'ai fait les modifications maintenant qu'il montre que la page ne peut pas être trouvée.


@MAMADOUBELLADIALLO Vérifiez si $ utilisateur-> id a la valeur correcte


@MAMADOUBELLADIALLO, Run PHP Artisan Itinéraire: Liste 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 . Vous pouvez voir s'il y a des erreurs dans l'URL de cette façon



1
votes

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>


3 commentaires

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



0
votes
// 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');
    }

1 commentaires

Il montre trop peu d'arguments pour fonctionner application \ http \ contrôleurs \ homecontroller :: update (), 1 passède et exactement 2 attendu