2 回答

TA貢獻1794條經驗 獲得超8個贊
如果路由像您發布的一樣正確注冊,則您的方法ClassroomsController應該接收一個附加參數,該參數是來自 url 的課程 ID 片段。
例如,如果您請求/api/v1/courses/1/classrooms路由,控制器將接收正確的{course}參數設置1為第一個參數。
然后,您可以實現 ClassroomsController 的 index 方法以使用隱式模型綁定并使用給定的課程 url id 獲取 Course 實例。
為此,您必須為第一個函數的參數鍵入提示 Course 模型,并將變量命名為要用于檢索模型的 url 片段。
在您的代碼示例中,您應該執行以下操作:
public function index(Course $course)
{
return $course->classrooms;
}
注意:我假設您在 Course 和 Classroom 模型之間存在關系以從課程模型實例中檢索教室
您可以在此處的官方文檔中閱讀更多相關信息

TA貢獻1784條經驗 獲得超7個贊
您可以使用 agroup來包含所有路由。就像是:
Route::group(['prefix' => '{course}'], function () {
// you can place your routes here
});
因此,該組中存在的所有路由都已經course在 url 路徑中具有該值,您不必為每個路由“重寫”它。
如果該字段是由您設置的,例如一個env變量,那么RouteServiceProvider您可以在mapApiRoutes函數中放置所需的前綴 。
protected function mapApiRoutes()
{
Route::prefix('/api/v1/courses/'.config('app.myVariable'))
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
這樣,您的所有 api 端點都將以該前綴開頭,并且您可以在所有端點中使用它。
- 2 回答
- 0 關注
- 221 瀏覽
添加回答
舉報