Laravel:未找到APIROURCE路由问题
在我的laravel应用程序中,我对路由使用Laravel:未找到APIROURCE路由问题,laravel,api,http-status-code-404,Laravel,Api,Http Status Code 404,在我的laravel应用程序中,我对路由使用apiResponse。但是,在发出api请求时,我得到了404notfound错误。以下是一个例子: Route::group(['prefix' => 'v1'], function() { /** * Categories */ Route::group([ 'prefix' => 'categories' ], function() { Route::apiResource('/'
apiResponse
。但是,在发出api请求时,我得到了404notfound
错误。以下是一个例子:
Route::group(['prefix' => 'v1'], function() {
/**
* Categories
*/
Route::group([ 'prefix' => 'categories' ], function() {
Route::apiResource('/', 'v1\CategoryController')->except(['destroy', 'show']);
Route::get('/edit/{category}', 'v1\CategoryController@edit');
// Route::patch('/{category}', 'v1\CategoryController@update');
Route::patch('/status/{category}/{status}', 'v1\CategoryController@status');
});
});
当我通过patch
方法访问update
api时,它返回404notfound
CategoryController.php
...
use Illuminate\Http\Request;
use App\ApiModels\v1\Category;
class CategoryController extends Controller
{
...
public function update(Request $Request, $category)
{
# models
$Category = new Category();
# accessing methods
if(($querySubmit = $Category->update($Request->all(), $category))['success'] == false)
{
return $this->response([
'class' => 'alert-danger'
], false, $this->parentErrors($querySubmit));
}
return $this->response([], true, 'Category has been saved successfully.');
}
...
}
但是,如果我取消注释更新
路由的补丁
方法,则它将开始工作。因为它开始使用新路由,完全忽略restful控制器路由
我不想包含额外的代码,特别是对于laravel已经给出的相同功能
如何解决此问题
请帮助,谢谢。资源
和APIROURCE
方法用于资源。您没有传入资源的名称(从技术上讲,这是应该传入资源的名称),也没有传入以资源名称结尾的URI。您可能希望改为这样:
Route::group(['prefix' => 'v1', 'namespace' => 'v1'], function() {
Route::patch('categories/{category}/{status}', 'CategoryController@status');
Route::resource('categories', 'CategoryController')
->except(['destroy', 'show', 'create']);
});
那么你的路线是:
GET api/v1/categories index
POST api/v1/categories store
GET api/v1/categories/{category}/edit edit
PUT/PATCH api/v1/categories/{category} update
您想要编辑
路由这一事实意味着您可能想要使用资源
而不是APIROURCE
,而只是排除您不想要的资源