Ich habe this Beitrag gesehen, aber ich glaube nicht, dass es relevant für mein Problem ist, weil ich glaube, dass ich Postdaten über eine Post-Route korrekt weiterleiten.Laravel: Die Weitergabe von Daten über einen Controller führt zu MethodNotAllowedHttpException
Hier ist der relevante Route Code:
Route::get('/pass', '[email protected]');
Route::post('/pass/{request}',['uses' => '[email protected]']);
Ich mag würde ein Controller-Methode für die ‚pass‘ Seite haben, aber die Frage, die ich ihnen getrennt sind, zu isolieren.
Hier sind die Verfahren in PageController.php:
public function pass(){
return view('pass')->with(array(
'title'=>'Create A Pass'
));
}
public function passRequest($request){
$data['request'] = $request;
$validator = Validator::make($request->all(), [
'studentID' => 'required|max:255',
'teacherID' => 'required|max:255',
'destination' => 'required|max:255',
]);
if ($validator->fails()) {
return redirect('/')
->withInput()
->withErrors($validator);
}
$pass = new Pass;
$pass->student = DB::table('users')->where('studentID', $request->studentID)->first()->id;
$pass->teacher = DB::table('users')->where('teacherID', $request->teacherID)->first()->id;
$pass->destination = $request->destination;
$pass->save();
return view('home')->with(array(
'title'=>'Home',
'success'=>'null'
));
}
I verwendeten Verfahren, um here angegebenen Daten an die Steuerung zu übergeben. Wenn das schlecht ist/veraltet, bin ich offen für irgendwelche Vorschläge.
Dies ist das Formular auf der Seite ‚Pass‘ für
<form action="{{ url('pass') }}" method="POST" class="form-horizontal">
{!! csrf_field() !!}
<fieldset>
<!-- Text input-->
<div class="container">
<div class="form-group">
<label class="col-md-4 control-label" for="studentID">Student ID</label>
<div class="col-md-3">
<input id="studentID" name="studentID" type="text" class="form-control input-md">
</div>
</div>
</div>
<!-- Text input-->
<div class="container">
<div class="form-group">
<label class="col-md-4 control-label" for="teacherID">Teacher ID</label>
<div class="col-md-3">
<input id="teacherID" name="teacherID" type="text" class="form-control input-md">
</div>
</div>
</div>
<!-- Text input-->
<div class="container">
<div class="form-group">
<label class="col-md-4 control-label" for="destination">Destination</label>
<div class="col-md-3">
<input id="destination" name="destination" type="text" class="form-control input-md">
</div>
</div>
</div>
<div class="container">
<div class="form-group">
<div class="col-sm-offset-4 col-sm-6">
<button type="submit" class="btn btn-default">
<i class="fa fa-check"></i> Create Pass
</button>
</div>
</div>
</div>
</fieldset>
</form>
Bei Vorlage dieses Formulars die Post-Daten zu senden ich die MethodNotAllowedHttpException Ausnahme erhalten.
Wenn ein Stack-Trace des Fehlers hilfreich sein würde, lassen Sie mich bitte wissen. Wenn es irgendwelche Stilvorschläge gibt, bin ich auch dafür offen.
Vielen Dank für die Antwort. Ich glaube, ich beginne den gesamten Routing-Prozess zu verstehen. Ich habe es versäumt, die Methoden get und {request} zu verbinden. Anstatt zu verstehen, was ich tat, war ich einfach Code kopieren und einfügen und es zu diesem Zweck verwenden. Ich kann nicht sagen, dass es noch funktioniert, zumindest wurde dieses Problem gelöst. – Damen