php - 为什么我的创建表单请求在 Laravel5 中抛出 404 异常?

标签 php laravel laravel-5 laravel-5.1

所以我正在使用 Laravel 5 安装,并且像一个优秀的程序员一样,我正在尝试使用 Laravel 中新的表单请求功能从我的 Controller 中获取验证逻辑。

所以我继续创建一个名为 CreateTenantRequest 的表单请求,如下所示:

php artisan make:request CreateTenantRequest

默认情况下,它在 authorize 方法中返回一个 false,并且它可以正常工作。如果我发出请求,它会说禁止。但是后来我更新了规则并将 authorize 方法设置为 true 现在当我从 Postman 发出相同的请求时,它说:

NotFoundHttpException in RouteCollection.php line 161:

这很荒谬,因为当我将其更改为 false 时,它​​会返回禁止罚款?

我错过了什么或做错了什么?

虽然我猜这无关紧要,但我的规则数组如下:

return [
    // Tenant details
    'name' => 'required|max:255',
    'username' => 'required|max:255|unique:tenant',
    // Tenant Admin details
    'first_name' => 'required',
    'last_name' => 'required',
    'email' => 'required|email|max:255',
    'password' => 'required|confirmed|min:6',
];

路线文件:

<?php

Route::group(['prefix' => 'api'], function(){
    Route::post('authenticate', 'Auth\AuthController@authenticate');

    // SuperAdmin Group
    Route::group(['namespace' => 'Archive', 'middleware' => 'superadmin'], function(){
        Route::resource('tenants', 'TenantController');
        Route::get('tenants/{id}/users', 'TenantController@showUsersForTenant');
    });

    // Tenant Group
    Route::group(['namespace' => 'Tenant'], function(){
        Route::resource('roles', 'RoleController');
        Route::resource('users', 'UserController');
    });

    // Remove before production
    // Only for testing purposes
    Route::get('test', function(){
        // return JWTAuth::parseToken()->getPayload()->get('username');
    });
});

最佳答案

所以在与 shock_gone_wild 进行投标讨论后,我意识到请求不是 ajax,因此 laravel 正在重新路由到 session 错误的 url。

我正在使用 Postman REST 客户端测试 API,默认情况下它会发送基本的 HTTP 请求,但是当像这样添加 header 时:

X-Requested-With:XMLHttpRequest

它发出 Ajax 请求,然后 laravel 检查它是否确实是 ajax,因此它没有路由到 url,而是返回 JSON 中的验证错误。

因此,无论何时,如果有人正在创建分离的 Web 服务并尝试使用 Postman 对其进行测试,请使用 header 进行测试,以便您可以在您的应用程序中模拟实际的 ajax 请求。

关于php - 为什么我的创建表单请求在 Laravel5 中抛出 404 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117664/

相关文章:

laravel - 如何在 Laravel 中使用两个 `with` ?

php - 无法使用php连接到远程数据库

Javascript Cookie 在另一个页面上不起作用

php - 获取查询时出现问题

javascript - 缺少 jquery,即使它位于文件 laravel 中

php - Laravel 5.5 中 stdClass 类的对象无法转换为字符串

php - 如何计算帖子的浏览次数(Laravel 事件监听器)?

php - Laravel 查询计数总行数

php - 当列数等于一或二时,如何找到两个表的唯一结果?

mysql - 使用 laravel 动态创建数据库和表