2017-10-15 2 views
0

Je suis un amateur de laravel. J'utilise laravel 5.4. donc je veux faire un processus de suppression sans liaison de formulaire, mais j'ai un message d'erreur comme celui-ci. S'il vous plaît dites-moi comment résoudre cela.laravel 5.4 MethodNotAllowedHttpException dans RouteCollection.php (ligne 251)

route:

Route::delete('test/{id}','[email protected]'); 

Ma Forme:

<td><button type="button" class="btn"><a href="{{URL::to('coba/test/'.$post->id.'/edit') }}" >Edit</a></button><button type="button" class="btn"><a href="{{ action('[email protected]', $post['id']) }}" method="post" >Hapus</a></button>{{ csrf_field() }}{{ method_field('DELETE') }} 
    </td> 

Mon contrôleur:

public function destroy($id) 
{ 
    $post = Post::find($id); 
    $post->delete(); 
    return redirect()->to('coba/test');` 
} 
+0

orang Indonésie ke ni ?? En passant, au lieu de '{{URL :: à ('coba/test /' .$ post-> id. '/ Edit')}}', kenape tak guna '{{route ('routename', [ "id", $ post-> id])}} '.... sebelum tu, jangan lupa kasi nom dulu pada route tadi ' Route :: delete ('test/{id}', 'TestController @ destroy ') -> name (' routename') ' –

+0

Href sur un élément html d'ancrage entraînera un appel GET mais votre route s'attend à un appel Delete. Vous pouvez vous assurer que vous obtiendrez un appel de suppression. –

+0

Iya :) @SyamsoulAzrien .. sudah saya coba cuman masih sama erreur nya – Atmojo211

Répondre

0

Href sur un élément html d'ancrage se traduira par un appel GET mais votre itinéraire s'attendre à un Supprimer l'appel Vous pouvez vous assurer que vous obtiendrez un appel de suppression.

L'un des moyens les plus courants consiste à utiliser un formulaire à la place pour publier des données sur votre serveur.

Supprimer

{{ Form::open(['url' => 'test/'.$post->id, 'method' => 'DELETE']) }} 
    {{ Form::button('delete', ['type' => 'submit', 
           'class' => 'btn']) }} 
    {{ Form::close() }} 

Modifier

{{ Form::open(['url' => 'coba/test/'.$post->id.'/edit', 'method' => 'POST']) }} 
    {{ Form::button('delete', ['type' => 'submit', 
           'class' => 'btn']) }} 
    {{ Form::close() }} 

Pour une meilleure pratique, je recommande d'utiliser {{ Form::open(...) }} {{ Form::close() }} qu'une seule fois et factoriser le code de votre contrôleur afin qu'il puisse lire la valeur des boutons et traduire que dans l'id correspondant de la poste de sorte que vous n'avez pas plusieurs formulaires html dans votre code.

+0

grâce à son travail .. sa compréhension même que ce que j'utilise avant. Merci – Atmojo211