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 关注
- 195 浏览
添加回答
举报