Beispiel #1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = PlayerModel::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['like', 'id', $this->id])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'country_id', $this->country_id]);
     return $dataProvider;
 }
 public function actionEdit($id)
 {
     $player = Player::find()->with(['playerPairStatisticCount' => function ($query) {
         $query->orderBy(['training_matches_count' => SORT_DESC]);
     }])->with('playerStatisticSummary')->with('playerSkill')->where(['id' => $id])->one();
     if ($player->playerSkill == null) {
         $player->link('playerSkill', new PlayerSkill());
     }
     $request = Yii::$app->request;
     if ($request->isPost) {
         if ($player->playerSkill->load($request->post()) && $player->playerSkill->save()) {
             return $this->redirect(['player/player', 'id' => $player->id]);
         }
     }
     return $this->render('edit', ['player' => $player]);
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Player::find();
     $playerTable = Player::tableName();
     // set up query with relation to `user.username`
     $ampluaTable = Amplua::tableName();
     $query->joinWith(['amplua' => function ($query) use($ampluaTable) {
         $query->from(['amplua' => $ampluaTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     // enable sorting for the related columns
     $addSortAttributes = ["amplua.name"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(["{$playerTable}.id" => $this->id, 'birthday' => $this->birthday, 'height' => $this->height, 'weight' => $this->weight, 'amplua_id' => $this->amplua_id, 'country_id' => $this->country_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'firstname', $this->firstname])->andFilterWhere(['like', 'lastname', $this->lastname])->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'notes', $this->notes])->andFilterWhere(['like', 'image', $this->image])->andFilterWhere(['like', 'more_ampluas', $this->more_ampluas])->andFilterWhere(['like', 'amplua.name', $this->getAttribute('amplua.name')]);
     return $dataProvider;
 }
 public function actionRefuse($id)
 {
     $trainingMatch = TrainingMatch::find()->where(['id' => $id])->one();
     if (!Yii::$app->user->isGuest) {
         $userId = Yii::$app->user->identity->id;
         $request = Yii::$app->request;
         if ($request->isPost) {
             $post = $request->post();
             $player = Player::find()->where(['id' => $userId])->one();
             $trainingMatch->unlink('purplePlayers', $player);
             $trainingMatch->unlink('greenPlayers', $player);
             $trainingMatch->link('refusedPlayers', $player);
             $trainingMatch->save();
         }
     }
     return $this->goBack();
 }
 public function actionPlayers($id)
 {
     $trainingMatch = TrainingMatch::findOne($id);
     $request = Yii::$app->request;
     if ($request->isPost) {
         $post = $request->post();
         // Сброс старых игроков
         foreach ($trainingMatch->greenPlayers as $player) {
             $trainingMatch->unlink('greenPlayers', $player);
         }
         foreach ($trainingMatch->purplePlayers as $player) {
             $trainingMatch->unlink('purplePlayers', $player);
         }
         // Добавление новых
         if (isset($post['green_players_ids'])) {
             $greenPlayers = Player::find()->where(['id' => $post['green_players_ids']])->all();
             foreach ($greenPlayers as $player) {
                 $trainingMatch->link('greenPlayers', $player);
             }
         }
         if (isset($post['purple_players_ids'])) {
             $purplePlayers = Player::find()->where(['id' => $post['purple_players_ids']])->all();
             foreach ($purplePlayers as $player) {
                 $trainingMatch->link('purplePlayers', $player);
             }
         }
         // Сохранение в БД
         $trainingMatch->save();
     }
     return [$trainingMatch->greenPlayers, $trainingMatch->purplePlayers];
 }