/** * Store a newly created resource in storage. * * @return Response */ public function store() { $chat = new Chat(); //Validation $rules = array('users' => 'required', 'subject' => 'required', 'text' => 'required'); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::to('/community/chats/create')->withInput()->withErrors($validator); } $chat->subject = Input::get('subject'); $chat->last_reply = date("Y-m-d H:i:s"); $chat->save(); $chat->user()->attach(Auth::user()->id); foreach (Input::get('users') as $id) { $chat->user()->attach($id); } $reply = new Reply(); $reply->text = Input::get('text'); $reply->chat_id = $chat->id; $reply->user_id = Auth::user()->id; $reply->save(); //Set up notifications for this chat foreach ($chat->user->all() as $user) { $reply->notification()->save($user); } $notification = Notification::where('user_id', '=', Auth::user()->id)->where('reply_id', '=', $reply->id)->firstOrFail(); $notification->has_read = 1; $notification->save(); return Redirect::to('/community/chats')->with('flash_chat', 'Your chat has been sent')->with('alert_class', 'alert-success'); }