Ich habe eine Laravel 5.2 App, die Ressourcenrouten verwendet. Ich habe ein wie folgt:Laravel Beitrag hinzufügen Route zu Ressource Route
Route::resource('submissions', 'SubmissionsController');
ich einen neuen Beitrag Route, um es für eine Sortieranlage Formular auf meiner Index-Seite hinzufügen möchten.
Route::post('submissions', [
'as' => 'submissions.index',
'uses' => '[email protected]'
]);
Ich habe die Post-Route über meine Ressourcenroute in meine routes.php platziert.
Eine Validierungsanforderung mit dem Namen SubmissionRequest
, die für Formulare innerhalb der Submission-Ressource gedacht ist, wird jedoch auf meiner neuen Post-Route ausgeführt. Hier ist meine SubmissionsController
Methode.
public function index(SortRequest $req)
{
$submission = new Submission;
$submission = $submission->join('mcd_forms', 'mcd_forms.submission_id', '=', 'submissions.id')->where('user_id', Auth::user()->id);
$data['sort_types'] = [
'name' => 'Name',
'form_type' => 'Type'
];
$data['direction'] = (!empty($req['asc']) ? 'asc' : 'desc');
$data['dataVal'] = (!empty($req['sort_type']) ? $req['sort_type'] : 'submissions.id');
$submission->whereNull('submissions.deleted_at')->orderBy(
$data['dataVal'],
$data['direction']
);
$data['submissions'] = $submission->get();
return view('submissions.index')->with($data);
}
Also, wenn die Sortier Form von meiner Index-Seite einreichen, wird die SubmissionRequest Validierung läuft, obwohl ich die SortRequest Validierung speziell nenne. Was mache ich falsch?
Sie den Namen der Route in Konflikt, die 'Strecke :: resource' bereits die Routennamen„submissions.index“auf die GET-Ressource zu dem Index der Reglereinstellung . Sie sollten in Ihrer benutzerdefinierten POST-Route einen anderen Namen eingeben. Wenn Sie Zweifel haben, welcher Name welcher Ressource zugewiesen ist, denken Sie daran, dass Sie immer 'php artisan route: list' eingeben können. –
Ich habe den Namen der Route in "submissions.sort" geändert und stehe immer noch auf dem gleichen Problem. Ich verstehe, dass die Ressourcenroute eine get-Methode für index hinzufügt, aber ich muss eine zusätzliche post-Methode hinzufügen. Ich sehe in der Dokumentation "Route :: match()" aber würde dies die Ressourcenroute überschreiben? – AJStacy