/** * 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]; }