我有一个使用资源路由的Laravel 5.2应用程序。我有一个如下:Laravel将资源路由添加到路由
Route::resource('submissions', 'SubmissionsController');
我想一个新的邮政路由添加到它为我的索引页排序形式。
Route::post('submissions', [
'as' => 'submissions.index',
'uses' => '[email protected]'
]);
我已将邮政路线放在我的资源路径上方,位于我的routes.php中。
但是,在我的新Post路径上正在执行一个名为SubmissionRequest
的验证请求,该验证请求用于提交资源中的表单。这是我的SubmissionsController
方法。
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);
}
所以,从我的索引页提交整理表时,它正在运行,即使我特别致电SortRequest验证SubmissionRequest验证。我究竟做错了什么?
您是矛盾的路线的名称,路线':: resource'的航线名称“submissions.index”与占用资源已经设置为控制器的索引。您应该在自定义POST路线中设置不同的名称。如果您对分配给哪个资源的名称有任何疑问,请记住您始终可以执行'php artisan route:list' –
我将路由名称更改为“submissions.sort”,并且仍然遇到同一问题。我知道资源路由是为索引添加一个get方法,但我需要添加一个额外的post方法。 我在文档“Route :: match()”中看到,但会使用这覆盖资源路由? – AJStacy