Laravel 拉威尔:如何获得多个记录
我想在subject表中有多条记录,但它始终只获取sections表的最后一条记录 我将根据所选的下拉框(部分)提取记录,并在该下拉框中提取该表中的内容 这是我的控制器Laravel 拉威尔:如何获得多个记录,laravel,laravel-4,eloquent,declaration,Laravel,Laravel 4,Eloquent,Declaration,我想在subject表中有多条记录,但它始终只获取sections表的最后一条记录 我将根据所选的下拉框(部分)提取记录,并在该下拉框中提取该表中的内容 这是我的控制器 public function subjectCreate(){ $users1 = []; $sections = []; $users1 = User::where('isTeacher', '1')->where('isAdmin', '0')->lists('firstname','i
public function subjectCreate(){
$users1 = [];
$sections = [];
$users1 = User::where('isTeacher', '1')->where('isAdmin', '0')->lists('firstname','id');
$sections = Section1::lists('name','name');
return View::make('teacher.create_subject', compact('users1','sections')
);
}
public function subjectStore(){
$validate = Validator::make(Input::all(), array(
'name' => 'required|unique:subject'
));
if ($validate->fails()){
return Redirect::route('subjectCreate')->withErrors($validate)->withInput();
} else {
foreach(Section1::where('name', '=', Input::get('section_name'))->get() as $section)
foreach(User::where('id', '=', Input::get('teacher_id'))->get() as $teacher)
$teacher_id = Input::get('teacher_id');
$subject = new Subject1();
$subject->name = Input::get('name');
$subject->student_id = $section->student_id;
$subject->student_firstname = $section->student_firstname;
$subject->student_lastname = $section->student_lastname;
$subject->teacher_id = $teacher_id;
$subject->teacher_firstname = $teacher->firstname;
$subject->teacher_lastname = $teacher->lastname;
$subject->section_id = $section->id;
$subject->section_name = $section->name;
$subject->save();
}
return Redirect::route('viewSubject')->with('success', 'SUBJECT HAS BEEN RECORDED!');
}
以下是我的下拉列表
<div class="form-group">
{{ Form::label('teacher_name', 'Assign a Teacher to this subject:') }}
{{ Form::select('teacher_id', $users1, null) }}
</div>
<div class="form-group">
{{ Form::label('section_name', 'Assign a Section to this subject:') }}
{{ Form::select('section_name', $sections, null) }}
</div>
{{Form::label('teacher_name','Assign a teacher to this subject:')}
{{Form::select('teacher_id',$users1,null)}
{{Form::label('section_name','Assign a section to this subject:')}
{{Form::select('section_name',$sections,null)}
看起来您缺少内部foreach
上的花括号
你的代码在这里
foreach(User::where('id', '=', Input::get('teacher_id'))->get() as $teacher)
$teacher_id = Input::get('teacher_id');
$subject = new Subject1();
...
与下面的代码段等效。因此,每个部分仅保存1个主题
foreach(User::where('id', '=', Input::get('teacher_id'))->get() as $teacher) {
$teacher_id = Input::get('teacher_id');
}
$subject = new Subject1();
...
下面是应该放在else
块中的代码
foreach(Section1::where('name', '=', Input::get('section_name'))->get() as $section) {
foreach(User::where('id', '=', Input::get('teacher_id'))->get() as $teacher) {
$teacher_id = Input::get('teacher_id');
$subject = new Subject1();
$subject->name = Input::get('name');
$subject->student_id = $section->student_id;
$subject->student_firstname = $section->student_firstname;
$subject->student_lastname = $section->student_lastname;
$subject->teacher_id = $teacher_id;
$subject->teacher_firstname = $teacher->firstname;
$subject->teacher_lastname = $teacher->lastname;
$subject->section_id = $section->id;
$subject->section_name = $section->name;
$subject->save();
}
}
需要注意的是:在将
$users1
或节
传递到视图之前,不需要将它们定义为数组,这似乎是多余的。你在用那些foreach()
循环做什么?这也是拉威尔4号还是5号?你有两个标签,但它们不一样……我使用的是laravel 4,在foreach循环中,它得到的数据与分区表中的学生一样具有这种条件,它仍然只得到一条记录:(,但是它得到了该分区中学生的第一列:)你是怎么得到的?