/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $countQuery = Training::find()->select('COUNT(*)')->where('`category_id` = `c`.`id`')->createCommand()->sql; $query = TrainingCategory::find()->from(['c' => self::tableName()])->select(['c.*', 'trainingsCount' => "({$countQuery})"]); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['attributes' => ['name', 'trainingsCount'], 'defaultOrder' => ['name' => SORT_ASC]]]); $this->load($params); if (!$this->validate()) { return $dataProvider; } $query->andFilterWhere([]); $query->andFilterWhere(['like', 'c.name', $this->name]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $this->addParam('categoryId', $params); $query = Training::find()->from(['t' => self::tableName()])->joinWith('category'); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['attributes' => ['name', 'calories', 'categoryName' => ['asc' => ['c.name' => SORT_ASC], 'desc' => ['c.name' => SORT_DESC]]], 'defaultOrder' => ['name' => SORT_ASC]]]); $this->load($params); if (!$this->validate()) { return $dataProvider; } $query->andFilterWhere(['t.id' => $this->id, 't.calories' => $this->calories, 't.category_id' => $this->categoryId]); $query->andFilterWhere(['like', 't.name', $this->name])->andFilterWhere(['like', 't.description', $this->description])->andFilterWhere(['like', 'c.name', $this->categoryName]); return $dataProvider; }
public function changeTraining(Request $request) { $rules = array('promotion' => 'required', 'select-students' => 'required'); $validator = \Validator::make(\Input::all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator); } $t = Training::find($request->input('promotion')); foreach ($request->input('select-students') as $sid) { $s = User::find($sid); $s->trainings()->detach(); $s->trainings()->save($t); } return redirect()->back(); }
public static function saveQuickVisits($request) { if (!Training::find($request->get('training_id'))) { return; } self::removeVisits($request->get('training_id')); foreach ($request->all() as $key => $input) { if (strpos($key, 'player_') !== false && $input > 0) { $id = str_replace('player_', '', $key); if (Player::find($id)) { self::addVisit($request->get('training_id'), $id, $input); } } } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $rules = array('title' => 'required', 'calendar' => 'required'); $validator = \Validator::make(\Input::all(), $rules); if ($validator->fails()) { return redirect()->back()->withInput()->withErrors($validator); } if (!Training::find($id)) { return redirect()->back()->withInput()->withErrors(['News introuvable']); } $t = Training::find($id); $t->title = $request->input('title'); $t->calendar_id = $request->input('calendar'); $t->save(); return redirect('/admin/training/index'); }
/** * Handle the event. * * @param TrainingVisitChange $event * @return void */ public function handle(TrainingVisitChange $event) { $player = Player::find($event->playerId); $training = Training::find($event->trainingId); $users = \App\Models\User::whereNotNull('email')->where('email', '!=', '')->get(); $status = $event->visit; $visitList = TrainingVisit::getVisitList(); $subject = trans('email.training.subject') . ' ' . str_limit($player->name, 10) . ' ' . str_limit($training->name, 10) . ' ' . $visitList[$status]; Mail::send('emails.training_visit', ['player' => $player, 'training' => $training, 'status' => $status], function ($m) use($users, $subject) { foreach ($users as $user) { if ($user->isAdmin()) { $m->to($user->email); } } $m->subject($subject); }); }