【发布时间】:2019-04-21 12:06:11
【问题描述】:
所以直到最近这一直有效,直到我想稍微改变它。我有路线
Route::get('/courses/{course}/lessons/{lesson}', 'CourseLessonController@show')->name('frontend.course.lesson');
我希望 {lesson} 现在引用 order_number,而不是 id 列。
我已经在我的 RouteServiceProvider 中尝试过这个
Route::bind('lessons', function ($course, $lesson) {
return App\CourseLesson::where('order_number', $lesson)
->where('course_id', $course->id)
->first();
});
我也尝试了getRouteKeyName 路线,这可能有效,但它不能确保课程记录是{course} 绑定到的课程的一部分。
public function getRouteKeyName() {
return 'order_number';
}
它们都不起作用,它似乎仍然链接到id 列。它甚至不能确保课程表中的course_id 列与传递给路由的{course} 相同......
这是我的控制器方法:
public function show(Course $course, CourseLesson $lesson) {
return view('frontend.lessons.show', compact('lesson', 'course'));
}
【问题讨论】: