Laravel:路由在表单提交时返回 404 页面

标签 laravel controller routes laravel-5.3

已解决

web.php 路由:

Route::post('/admin/users/action', [
    'uses' => 'UserController@massAction',
    '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();
}

在表单提交时,它应该返回一条消息,但它甚至没有到达 Controller 。在方法内设置断点可确认它未到达该方法。

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

我正在对产品、属性等做同样的事情,效果很好。只是这个路线和方法行不通。同一 UserController 中的其他路由可以工作。

最佳答案

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

将操作从 url() 更改为 route() 并检查一下。

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

关于Laravel:路由在表单提交时返回 404 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43867596/

相关文章:

php - Filesystem.php 第 111 行中的 ErrorException :file_put_contents(): failed to open stream: No such file or directory

flutter - 自动填充条件的textformfield Controller

json - 将 JSON 数据传递给 Spring MVC Controller

c# - 默认路由更改 ASP .Net 5 MVC 6

php - 如何在使用 Laravel 的 block 功能时延迟脚本的执行?

php - 持护照的多用户 - 如何获取经过身份验证的用户类型

ruby-on-rails - Rails 路由 : what is the difference between :conditions and :requirements in routing?

ruby-on-rails - 如何在 Rails 中测试任意路由?

php - 找不到类 'Predis\Client' 循环

php - 拉拉维尔 5.4 : search by tag