我为我的学校建立了学校系统,我遇到了这个问题,我已经困了好几天了。在我的应用中,我的用户类型为admin
,teacher
和student
。管理员创建所有用户和所有其他信息。现在,我正在制作教师面板,教师可以在其中为学生添加标记,之后它们将显示在学生面板中。
因此,当老师进入他们的帐户时,他将能够选择他教授的课程和他教授的科目,对于那种情况,我有桌子 - class_subjects
我在其中。从管理面板中保存teacher_id
,subject_id
和class_id
。我在这里,在我的老师小组中称呼它,它似乎工作得很好,因为我看到了我需要的确切课程和科目。在那之后,我需要使用从教师那里挑选的这些内容进行帖子查询,并且为了获得所选学生和所选主题的所有学生,这也完全符合我的要求。所以我要回的是一个新的刀片,其中包含来自表class_subject
的信息的数组,教师需要从这个返回的数组中选择信息,在文本字段中,他必须为他选择的学生添加他的标记。之后,我需要将已挑选的信息保存在名为student_marks
的新表格中,其中包含字段student_id
,subject_id
,mark_type_id
,mark
。
我的问题是如何在新表(student_marks
)中保存此信息(教师选择的信息)?
我发布了控制器:
class AccountController extends Controller
{
public function getIndex() {
$user = Auth::user();
$classStudent = ClassSubject::where('teacher_id','=',$user->id)->get()->lists('class_id');
$userSubject = ClassSubject::where('teacher_id','=',$user->id)->get()->lists('subject_id');
return view('educator.account.account',[
'user' => $user,
'userTeacher'=> $classStudent,
'userSubject'=> $userSubject,
]);
}
public function postIndex(Request $request) {
ClassSubject::where(
'subject_id','=',$request->get('userSubject'),
'class_id','=',$request->get('userClass')
);
$user = Auth::user();
$markType = MarkType::lists('type');
$sub = Subject::where('id','=',$request->get('userSubject'))->get()->lists('name');
$stu = User::where('class_id','=',$request->get('userClass'))
->orderBy('first_name', 'asc')->get()->lists('full_name');
return view('educator.account.input', [
'user' => $user,
'studentss'=> $stu,
'markType' => $markType ,
'sub'=> $sub,
}
我知道它有点扭曲,但我真的陷入了这里,如果有人能最终帮助我,我将非常感激。如果不清楚,请询问。
educator.account.account(第一刀片)
@extends('teacher-app')
@section('teacher-content')
<div class="col-md-6">
{!! Form::open(['method' => 'post', 'class' => 'form-horizontal']) !!}
<div class="form-group">
{!! Form::label('profile_id','Избери клас:', ['class' => 'control-label col-md-4']) !!}
<div class="col-md-3">
{!! Form::select('userClass', $userTeacher, null, ['class'=>'form-control']) !!}
</div>
</div>
<br>
<div class="form-group">
{!! Form::label('profile_id','Избери предмет:', ['class' => 'control-label col-md-4']) !!}
<div class="col-md-3">
{!! Form::select('userSubject', $userSubject, null, ['class'=>'form-control']) !!}
</div>
</div>
<div align="center">
{!! Form::submit('Избери', ['class' => 'btn btn-default']) !!}
</div>
{!! Form::close() !!}
@stop
</div>
educator.account.input(第二刀片)
@extends('teacher-app')
@section('teacher-content')
<div class="col-md-8">
{!! Form::open(['method' => 'post', 'class' => 'form-horizontal']) !!}
<div class="form-group">
{!! Form::label('profile_id','Ученик:', ['class' => 'control-label col-md-4']) !!}
<div class="col-md-3">
{!! Form::select('userStu', $studentss, null, ['class'=>'form-control']) !!}
</div>
</div>
<div class="form-group">
{!! Form::label('profile_id','Оценка:', ['class' => 'control-label col-md-4']) !!}
<div class="col-md-2">
{!! Form::text('mark',null, ['class'=>'form-control']) !!}
</div>
</div>
<div class="form-group">
{!! Form::label('profile_id','Тип оценка:', ['class' => 'control-label col-md-4']) !!}
<div class="col-md-3">
{!! Form::select('markType', $markType, null, ['class'=>'form-control']) !!}
</div>
</div>
<div class="form-group">
{!! Form::label('profile_id','Предмет:', ['class' => 'control-label col-md-4']) !!}
<div class="col-md-3">
{!! Form::select('stuSub', $sub, null, ['class'=>'form-control']) !!}
</div>
</div>
<br>
<div align="center">
<a href="{{url('educator/account')}}"><button type="button" class="btn btn-default">Назад</button></a>
{!! Form::submit('Запиши', ['class' => 'btn btn-default']) !!}
</div>
{!! Form::close() !!}
</div>
@stop
答案 0 :(得分:1)
当他们提交学生评分表时,您将有一条类似于此的路线发布到:
class AccountController extends Controller {
public function markStudent(Request $request)
{
// get request data
$mark = $request->input('mark');
$subject_id = $request->input('stuSub');
$mark_type = $request->input('markType');
$student_id = $request->input('userStu');
// get the existing record or create a new, empty record
$student_mark = StudentMark::firstOrNew(compact('student_id', 'subject_id'));
// add the updated data to the model
$student_mark->fill(compact('mark_type', 'mark'));
// persist to database
$student_mark->save();
// redirect or do whatever you want after request completion...
}
}
上面的代码假设您每个学生只需要一个条目(即这两个列上的唯一索引)。
我还建议您在插入数据之前验证数据,方法是在StudentMark::firstOrNew()
之前或creating a custom request object with validation之前执行此操作。