【发布时间】:2016-09-21 22:06:21
【问题描述】:
我正在使用 Laravel 资源控制器构建一个模型 API,一切正常,直到我在调用 get create 时尝试覆盖默认的 Laravel 资源路由,但 Laravel 根本不会接受覆盖。文档说明如下:
如果需要在默认资源路由之外向资源控制器添加其他路由,则应在调用 Route::resource 之前定义这些路由;否则,资源方法定义的路由可能会无意中优先于您的补充路由:
在我的代码中,我有以下内容:
routes.php
Route::group(['prefix' => 'api/v1', 'middleware' => 'cors'], function () {
Route::get('test/create', 'V1\Universal\TestController@create2');
Route::resource('test', 'V1\Universal\TestController');
});
TestController.php
public function create2()
{
return "create 2 override function";
}
public function create()
{
return "create default function";
}
当调用 API /api/v1/test/create 时,它总是触发 create() 方法而不是 create2() 方法。根据 Laravel 文档,我的自定义附加路由应该优先于它在资源之前定义的。
有什么想法吗?
【问题讨论】:
标签: php laravel laravel-5 laravel-5.2