這是一個路由規則:
Route::apiResources([
'profile' => ProfileController::class,
'specialization' => SpecializationController::class,
'specialization/filter' => SpecializationController::class,
]);
我嘗試在上面的 apiResource 中添加自定義路由:
'register/code/verify' => [RegisterVerifyController::class, 'verify']
結果我得到了這個:
Route::apiResources([
'profile' => ProfileController::class,
'specialization' => SpecializationController::class,
'specialization/filter' => SpecializationController::class,
'register/code/verify' => [RegisterVerifyController::class, 'verify']
]);
這沒用。如何做到這一點才能呼叫帶有api/前綴的路由apiResources?
uj5u.com熱心網友回復:
在routes/api.php檔案中定義路由時,所有路由都會自動以api/. 您的問題的可能原因是以下路由定義:
'register/code/verify' => [RegisterVerifyController::class, 'verify']
apiResource使用orapiResources路線外觀時,您無法為路線指定特定操作。您傳遞給的每個陣列元素都apiResouces應該是一個kvp(鍵值對),其中key是string指定 the ,route并且value也是string指定映射到的 the (請參閱 api docs)。您對上述內容所做的是提供as an ,這會導致由于.ControllerroutevaluearrayErrorExceptionArray to string conversion
您可以執行以下操作:
Route::apiResources([
'profile' => ProfileController::class,
'specialization' => SpecializationController::class,
'specialization/filter' => SpecializationController::class,
]);
Route::match(
['GET', 'POST'],
'register/code/verify',
[RegisterVerifyController::class, 'verify']
);
我不知道你想在verify路由中使用的 HTTP 動詞,所以我match兩者都用過,GET但POST你可以用適合你的任何東西替換它。
如果您有其他操作RegisterVerifyController,verify但仍想將其用作apiResource,您可以將其重新添加到您的組中,只是不要指定任何操作:
Route::apiResources([
'profile' => ProfileController::class,
'specialization' => SpecializationController::class,
'specialization/filter' => SpecializationController::class,
'register/verify' => RegisterVerifyController::class,
]);
uj5u.com熱心網友回復:
默認情況下,如果您在.../routes/api.php檔案中定義路由代碼,則默認情況api/下會將前綴分配給您的路由。但是從您上面的代碼看來,您正在routes/web.php檔案中定義您的路線(只是猜測)。將前綴添加到路由的一種方法是:
Route::group(['prefix' => 'api'], function() {
Route::apiResources([
'profile' => ProfileController::class,
'specialization' => SpecializationController::class,
'specialization/filter' => SpecializationController::class,
'register/code/verify' => [RegisterVerifyController::class, 'verify']
]);
});
更新:以這種方式定義您的路線
Route::get('profile', [ProfileController::class]);
Route::get('specialization', [SpecializationController::class]);
Route::get('specialization/filter', [SpecializationController::class]);
Route::get('register/code/verify', [RegisterVerifyController::class, 'verify');
api/前綴是自動添加的
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514634.html
標籤:拉拉维尔
上一篇:忽略更新Laravel中的變數
