public function connect(Request $request) { $this->validate($request, ['code' => 'required|digits:5|exists:testroom,code', 'name' => 'required', 'lastname' => 'required']); $code = $request->get('code'); $name = $request->get('name'); $lastname = $request->get('lastname'); $students = TestRoomStudents::where('code', '=', $code); Session::put('name', $name); Session::put('lastname', $lastname); $testroom = TestRoom::where('code', '=', $code)->get()[0]; if ($students->count() >= 1) { if ($students->where('name', '=', $name)->where('lastname', '=', $lastname)->count() != 0) { if ($testroom->status == 2) { return redirect()->route('testroom.start', ['code' => $code]); } elseif ($testroom->status == 1) { return view('testroom.connected', ['code' => $code]); } } else { $number = TestRoomStudents::where('code', '=', $code)->orderBy('id', 'desc')->first()->number + 1; } } else { $number = 1; } $newStudent = new TestRoomStudents(); $newStudent->name = $name; $newStudent->lastname = $lastname; $newStudent->code = $code; $newStudent->number = $number; $newStudent->save(); $pusher = App::make('pusher'); $pusher->trigger('TestRoomChanel', 'StudentConnected', array('code' => $code, 'name' => $name, 'lastname' => $lastname, 'number' => $number)); if ($testroom->status == 2) { return redirect()->route('testroom.start', ['code' => $code]); } elseif ($testroom->status == 1) { return view('testroom.connected', ['code' => $code]); } }