关于 controller 方面里面一个方法多参数的问题(包括 $request 类型)
大家好 我的问题是这样的 现在在做一个课程评分系统 现在在完成课程任务的增删改查 课程与任务的关系是一对多 老师要求的是在进入对应课程的链接后 页面有实现创建课程任务的功能 因为课程的主键是课程任务的外键 所以在创建课程任务的时候不需要手动输入对应的课程 现在的问题是在taskcontroller的store方法里面有两个参数 以这样的方式体现:
(Request $request,$id)
然而在创建任务点击确认之后会报参数传递的问题 如下:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR)
Too few arguments to function App\Http\Controllers\TasksController::store(), 1 passed and exactly 2 expected
试了很多办法都没能解决 现在的猜测是route里面web.php 写的有问题 是这样写的:
Route::get('/courses/{course}/tasks/create','TasksController@create');
Route::post('tasks/post','TasksController@store');
课程任务controller 里面store 方面的全部代码如下:
public function store(Request $request,$id)
{
$course = Course::find($id);
$course_id = $course->id;
//
$this->validate($request,[
'taskname' =>' required',
'taskdescription' => 'required',
'taskduetime' => 'required',
'selfmarkingopen' => 'required',
'selfmarkingclose' => 'required',
'peermarkingopen' => 'required',
'peermarkingclose' => 'required',
'filetype' => 'required',
'course_id'=> 'required'
]);
//create course
$task= new Task;
$task->taskname = $request->input('taskname');
$task->taskdescription= $request->input('taskdescription');
$task->taskduetime = $request->input('taskduetime');
$task->selfmarkingopen = $request->input('selfmarkingopen');
$task->selfmarkingclose = $request->input('selfmarkingclose');
$task->peermarkingopen = $request->input('peermarkingopen');
$task->peermarkingclose = $request->input('peermarkingclose');
$task->course_id = $request->$course_id;
$task->course()->associate($course);
$task->filetype = $request->input('filetype');
$task->save();
return redirect('/courses/')->with('success','Task Created');
}
求大神解答疑惑
推荐文章: