2017-10-20 3 views
0

Ich habe einen Controller und darin habe ich mehrere Methoden. Meine Frage ist, Wie kann ich die Klage der Controller zu meiner Form:Wie rufe ich eine Controller-Methode in PHP Laravel?

<form action="action('[email protected]')" method="post"> 

Offensichtlich ist dies die berühmte Ausnahme geben:

Aktion App \ Http \ Controllers \ ExamenController @ insert nicht definiert .... blablabla

auch ein mit dieser versucht:

Der gleiche Fehler. Weiß jemand wie das funktioniert ???? Ich verstehe nicht, Dokumentation von Laravel 5.5

Aber ich weiß, das funktioniert in web.php setzen (zuvor route.php) mit:

Route::post('url','[email protected]'); 
+0

Warum nicht genannt Routen verwenden? – enriqg9

+0

Wie funktioniert es? Ich verstehe nichts von Laravel Dokumentation –

Antwort

2

Die korrekte Syntax ist es wie dies zu tun:

<form action="{{ action('[email protected]') }}" method="post"> 

Dies ist in der docs gut umrissen. obwohl

Dieser Fehler:

Aktion App \ Http \ Controllers \ ExamenController @ insert

sagt, dass die Methode nicht existiert tatsächlich in Ihrem Controller.

Ja, Sie haben eine Route dafür mit Route::post('url','[email protected]'); definiert, aber haben Sie diese Methode tatsächlich in Ihrem ExamenController erstellt?

Der Fehler schlägt vor, dass Sie nicht haben und so würde ich überprüfen, dass es existiert und/oder richtig geschrieben ist.

Eine Alternative, obwohl dies das Problem nicht lösen, wenn die InsertUser Methode nicht wäre existieren zu erreichen, was Sie wollen dies wie:

<form action="{{ url('url') }}" method="post"> 

Wenn Sie dies mit Named tun wollte Routen, dann können Sie dies tun, indem Sie einen Namen für die Route bereitstellt und dann die für Ihre Form Aktion mit:

Route::post('url','[email protected]')->name('InsertUser'); 

<form action="{{ route('InsertUser') }}" method="post"> 

, die wiederum in den docs skizzieren.

+0

Ich habe es! aber es zeigt den Fehler –

+0

Bitte posten Sie Ihren Controller in Ihrer Frage. – James

+0

öffentliche Funktion InsertUser (Anfrage $ Anfrage) { \t DB :: Tabelle ('usuarios') -> einfügen ([....... –

0

Während Klinge in der Route zu fusionieren oder URL ist handlich, Laravel hat eine eingebaute Möglichkeit, dies zu umgehen:

{!! Form::model($form, ['id' => 'my_form_id', 'method' => 'POST', 
'action' => ['[email protected]', $form->id], 'class' => 'some-class'])!!} 
+0

Wirklich? Ich wusste nichts davon. Ich werde es versuchen. –

Verwandte Themen