Laravel href mit POST
Ich versuche einige Daten zu meinem controller eine Aktion href
. Ich weiß nicht, warum, aber laravel übergibt die Daten mit BEKOMMEN - Methode, aber anstatt BEKOMMEN ich brauche eine POST. Ich weiß wirklich nicht verstehen, warum laravel hat, und coulnd nicht eine Antwort finden. Ich hab das mehrere Male und meine syntax scheint richtig zu sein. Kann jemand einen Blick drüber?
Klinge:
<td>
@foreach($products as $product)
<a href="{{ action('ProductsController@delete', $product->id ) }}">
<span class="glyphicon glyphicon-trash"></span></a>
{{ $product->name }},
@endforeach
</td>
Meine Route:
Route::post('delete', ['as' => 'delete', 'uses' => 'ProductController@delete']);
In meinem Controller ist nur:
public function delete()
{
return 'hello'; //just testing if it works
}
Fehler:
MethodNotAllowedHttpException in RouteCollection.php line 219....
Ich weiß, es ist ein get-Methode, Ursache, wenn ich versuche, übergeben Sie die Daten an meine controller, meine URL sieht wie folgt aus:
blabla.../products/delete?10
Ist nichts falsch mit meinem syntax? Ich kann nicht wirklich sehen, warum es verwendet die get-Methode.
Ich habe auch versucht ein: data-method="post"
insite meiner <a>
- tag, aber diese haben nicht funktioniert, entweder.
Dank für die Zeit nehmen.
InformationsquelleAutor WellNo | 2016-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen link mit einem anchor-wie
<a href=example.com>
Ihre Methode immer GET. Das ist wie das öffnen einer URL in Ihrem browser, machen Sie eine GET-Anforderung.Sollten Sie ein Formular machen, dass die POST-Anforderung an die delete-Methode des Controllers. Vorausgesetzt, Sie haben das Beleuchten HTML-Paket für HTML und Formulare, Sie könnten dies tun:
EDIT:
Mit einem button-tag:
man könnte ein button-tag statt Einreichen.
Ich stried es mit einem button-tag, aber das habe nicht geklappt. Vielleicht ist es meine syntax. Könntest du mir Beispiel?
bitte überprüfen Sie die edit meiner Antwort.
Ich habe auch versucht es auf diese Weise, aber das will ich nicht Einreichen box um das Symbol herum :/ nur das Symbol selbst, gibt es eine Möglichkeit, dies zu tun? wenn nicht, werde ich tun, einige änderungen mit css 🙂
InformationsquelleAutor thefallen
Hier ist dein problem:
Anker-tags werden immer eingereicht, ERHALTEN. Es ist ein HTTP erbaut und ist nicht Laravel-spezifisch.
POST wird verwendet, wenn ein Formular abgeschickt wird, gibt die POST-HTTP-Verb oder die HTTP-Methode aufgerufen wird, wird durch ein AJAX-request, der angibt, "POST" als HTTP-Verb.
Betrachten Sie stattdessen eine
submit
Typ Schaltfläche in einem Formular, das sendet, was Sie brauchen.Und dann in deinem controller:
Werden Sie beginnen zu sehen, wie GET und POST-requests unterscheiden sich in der übersendung von Schlüssel/Wert-Paaren.
Weitere Informationen:
http://www.tutorialspoint.com/http/http_methods.htm
InformationsquelleAutor Justin Origin Broadband