Laravel 到控制器的路由不工作
Laravel route to controller not working
我正在尝试将新控制器添加到现有的 laravel 项目中。该应用程序已经在 /users
上有一些页面,我正在尝试添加一个 RESTful API ,它单独工作。我希望 API 在 api/users
上可用。
我使用 PHP artisan:
创建了控制器
php artisan controller:make ApiUsersController
我已将以下内容添加到我的路线中:
Route::controller('api/users', 'ApiUsersController');
然而,当我点击 URL 时,我只收到该站点的 'Page could not be found' 消息。
有什么我遗漏的吗?
您遇到的问题似乎是您使用了 Route::controller
而不是 Route::resource
。
Route::resource
将路由映射到控制器生成器默认创建的七个 RESTful 方法。 Route::controller
将它们映射到您自己添加的方法,这些方法将 HTTP 方法作为其名称的一部分,在您的情况下,如果您有一个名为 getIndex
的方法,它将在对 [=16 的 GET 请求中被调用=] 或者如果您有一个名为 postStore
的 postStore
,它将在对 /api/users/store
.
的 POST 请求中被调用
为了向路由添加 API 前缀,您可以使用以下内容:
Route::group(['prefix' => 'api'], function() {
Route::resource('users', 'ControllerName');
});
您还可以在同一回调中的 API 中添加任何其他控制器。
我正在尝试将新控制器添加到现有的 laravel 项目中。该应用程序已经在 /users
上有一些页面,我正在尝试添加一个 RESTful API ,它单独工作。我希望 API 在 api/users
上可用。
我使用 PHP artisan:
创建了控制器php artisan controller:make ApiUsersController
我已将以下内容添加到我的路线中:
Route::controller('api/users', 'ApiUsersController');
然而,当我点击 URL 时,我只收到该站点的 'Page could not be found' 消息。
有什么我遗漏的吗?
您遇到的问题似乎是您使用了 Route::controller
而不是 Route::resource
。
Route::resource
将路由映射到控制器生成器默认创建的七个 RESTful 方法。 Route::controller
将它们映射到您自己添加的方法,这些方法将 HTTP 方法作为其名称的一部分,在您的情况下,如果您有一个名为 getIndex
的方法,它将在对 [=16 的 GET 请求中被调用=] 或者如果您有一个名为 postStore
的 postStore
,它将在对 /api/users/store
.
为了向路由添加 API 前缀,您可以使用以下内容:
Route::group(['prefix' => 'api'], function() {
Route::resource('users', 'ControllerName');
});
您还可以在同一回调中的 API 中添加任何其他控制器。