Laravel:路线返回404页的形式提交

Laravel:路线返回404页的形式提交

问题描述:

解决Laravel:路线返回404页的形式提交

web.php路线:

Route::post('/admin/users/action', [ 
    'uses' => '[email protected]', 
    'as' => 'user.massAction' 
]); 

形式:

<form id="users-form" role="form" method="POST" action="{{ url('/admin/users/action') }}"> 
    {{ csrf_field() }} 
    ... 
</form> 

UserController的massAction方法没有得到达到:

public function massAction(Request $request) 
{ 
    $userIds = $request->input('users'); 
    $user = new User(); 

    switch ($request->input('mass-action')) { 
     case 1: 
      $user->deleteUser($userIds); 
      $request->session()->flash('message-success', 'User(s) deleted!'); 
      break; 
    } 

    return redirect()->back(); 
} 

在表单提交时应该返回一条消息,但它甚至不会到达控制器。在方法内部设置断点确认它没有达到它。

它只是去/ admin/users/action并返回404错误,因为这个页面不存在。它应该转到UserController内部的massAction方法,并重定向到提交表单的页面。

我对产品,属性等做了同样的事情,它工作正常。只有这种路线和方法不起作用。同一个UserController中的其他路由工作。

+0

如果您有任何路线组,您可能需要一个'php artisan route:cache' –

+0

我没有任何群组 – Rudolph

的问题是在一个的输入字段。不知道为什么它没有抛出任何错误,甚至没有到达控制器。

<input class="entity-select" type="checkbox" name="specifications[{{ $user->id }}][id]" value="{{ $user->id }}"> 

是这样

<input class="entity-select" type="checkbox" name="users[{{ $user->id }}[id]" value="{{ $user->id }}"> 

变回了错误的输入字段名,现在抛出一个错误,并在UserController的也达到断点后需要。也许一些观点缓存问题?如果那是一件事。

尝试使用route()而不是url()。

更改从url()到route()的动作并检查。

action="{{ route('user.massAction') }}" 
+0

仍然返回404错误。 – Rudolph

我认为你需要改变喜欢你的路线:

web.php路线:

Route::post('/admin/users/action','[email protected]')->name('user.massaction'); 

形式:

<form id="users-form" role="form" method="POST" action="{{ route('user.massaction') }}"> 
    {{ csrf_field() }} 
    ... 
</form> 
+0

试过,没有工作。正如我所说,我已经有了像我发布的那样的massAction路线,但对于不同的控制器和他们的工作,但这一个不出于某种原因。 – Rudolph