Laravel:如何插入多个记录

Laravel:如何插入多个记录,laravel,laravel-4,eloquent,laravel-5,Laravel,Laravel 4,Eloquent,Laravel 5,我想使用Laravel在我的数据库中插入多条记录,但是当我插入它时,它只在数据库中给我一条记录 这是我的控制器 public function postCreateAttendance() { $validate = Validator::make(Input::all(), array( 'status' => 'required' )); if ($validate->fails()) { return

我想使用Laravel在我的数据库中插入多条记录,但是当我插入它时,它只在数据库中给我一条记录

这是我的控制器

    public function postCreateAttendance()
{
    $validate = Validator::make(Input::all(), array(
        'status' => 'required'
    ));


    if ($validate->fails())
    {
        return Redirect::route('viewStudent')->withErrors($validate)->withInput();
    }
    else
    {





        foreach(User::all() as $user):
        foreach(User::whereRaw('isTeacher = "0" and isAdmin = "0"')->get() as $student)
        foreach(User::whereRaw('isTeacher = "1" and isAdmin = "0"')->get() as $teacher)
        //$users[$user->id]=$user->firstname;




        $attendance = new Attendance();
        $attendance->status = Input::get('status');
        $attendance->comment = Input::get('comment');
        $attendance->student_id = $student->id=$student->id;
        $attendance->student_firstname = $student->id=$student->firstname;
        $attendance->student_lastname = $student->id=$student->lastname;
        $attendance->teacher_id = $teacher->id=$teacher->id;
        $attendance->teacher_firstname = $teacher->id=$teacher->firstname;
        $attendance->teacher_lastname = $teacher->id=$teacher->lastname;






        if($attendance->save())
        {
            return Redirect::route('viewStudent')->with('success', 'ATTENDANCE HAS BEEN RECORDED!');
        }
    else
    {
        return Redirect::route('viewStudent')->with('fail', 'An error occured while creating the attendance.');
    }


        endforeach;


    }
}

如何保存多个记录?请帮助,谢谢你^ ^

问题是你在foreach循环期间返回ing,因此只处理一条记录。您需要处理所有记录,然后返回路线

下面是对代码的一些重构

public function postCreateAttendance()
{
    $validate = Validator::make(Input::all(), array(
        'status' => 'required'
    ));


    if ($validate->fails()) {
        return Redirect::route('viewStudent')->withErrors($validate)->withInput();
    }

        foreach(User::where('isTeacher', '0')->where('isAdmin', '0')->get() as $student) {
              foreach(User::where('isTeacher', '1')->where('isAdmin', '0')->get() as $teacher) {

                    $attendance = new Attendance();
                    $attendance->status = Input::get('status');
                    $attendance->comment = Input::get('comment');
                    $attendance->student_id = $student->id;
                    $attendance->student_firstname = $student->firstname;
                    $attendance->student_lastname = $student->lastname;
                    $attendance->teacher_id = $teacher->id;
                    $attendance->teacher_firstname = $teacher->firstname;
                    $attendance->teacher_lastname = $teacher->lastname;
                    $attendance->save();
               }
          }

      return Redirect::route('viewStudent')->with('success', 'ATTENDANCE HAS BEEN RECORDED!');
}

编辑:我已经删除了第一个
foreach(User::all()作为$User):
-因为目前,在您的代码中,它什么也不做…?

您的foreach循环在第一个项目被处理后中断,原因是
if($attention->save()){return Redirect…}else{return Redirect…}
。重构它,您就应该完成(重定向应该只在异常情况下发生,或者在循环被comploeteley处理之后发生)。但一般来说,你的代码不是很清楚,所以你可能想把它作为一个整体来重构(添加一些大括号、正确的意向等)。也可以考虑通过“代码>出勤:”插入()/<代码>批量插入,因为这可能会加速事情的发展,这是个骗局!!!D谢谢你!!是的,foreach(User::all()作为$User):只是一个引用hehe对此表示抱歉^^;;