我正在研究基于Laravel设计的LMS系统
在这个系统中,我们有一个课程,一个课程和一个测试模型。每门课程可以有一些课程,只有一个最终测试,而每节课可以有一个测试。
为课程或课程创建测试我只有一个页面包含一个表单。创建它我使用了这些:
- (void) handleOneTap:(UITapGestureRecognizer*)paramSender{
// *** Never gets called
NSUInteger touchCounter = 0; for (touchCounter = 0;
touchCounter < paramSender.numberOfTouchesRequired;
touchCounter++){
CGPoint touchPoint = [paramSender locationOfTouch:touchCounter
inView:paramSender.view];
NSLog(@"Touch #%lu: %@",
(unsigned long)touchCounter+1, NSStringFromCGPoint(touchPoint));
}
}
- (void)viewDidLoad {
[super viewDidLoad];
_container = [[UIView alloc] initWithFrame:CGRectMake(20, 50, 280, 300)];
[self.view addSubview:_container];
_container.backgroundColor = [UIColor redColor];
_container.opaque = YES;
// setup tap recognizer
self.tapGestureRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleOneTap:)];
self.tapGestureRecognizer.numberOfTouchesRequired = 1;
self.tapGestureRecognizer.numberOfTapsRequired = 1;
self.view.userInteractionEnabled = YES;
self.container.userInteractionEnabled = YES;
[self.view addGestureRecognizer:self.tapGestureRecognizer];
}
路线是这些:
{!! Form::open(array('action' =>['TestController@store',$course_id,$lesson_id], 'id'=>'createTestForm')) !!}
如您所见,在课程路线组和课程路线组内重复测试模型的路线。
现在,当我想创建一个测试对于一个课程,所有事情都有效,创建的表单的动作属性是这样的:
Route::group(['prefix' => 'course'], function () {
Route::group(['prefix' => '/{course_id}'], function () {
//To Create Final Test of a Course
Route::resource('test', 'TestController');
//To Create Final Test of a Course
Route::group(['prefix' => 'lesson'], function () {
Route::group(['prefix' => '/{lesson_id}'], function () {
//To Create Test of a Lesson
Route::resource('test', 'TestController');
//To Create Test of a Lesson
});
});
Route::resource('lesson', 'LessonController');
});
});
Route::resource('course', 'CourseController');
但是在为课程创建测试表单时,表单的操作如下:
http://lms.dev/course/2/lesson/8/test
虽然必须是这样的事情:
http://lms.dev/course/2/lesson//test
我不想为此创建两个不同的页面视图,因为课程和课程的测试选项完全相似。
我不知道该怎么做?