/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = ChampionshipPart::find();
     $championship = new Championship();
     $championshipPartTable = ChampionshipPart::tableName();
     $championshipTable = Championship::tableName();
     $query->joinWith(['championship' => function ($query) use($championshipTable) {
         $query->from(['championship' => $championshipTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     // enable sorting for the related columns
     $addSortAttributes = ["championship.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(["{$championshipPartTable}.id" => $this->id]);
     $query->andFilterWhere(['like', "{$championshipPartTable}.name", $this->name])->andFilterWhere(['like', 'championship.name', $this->getAttribute('championship.name')]);
     return $dataProvider;
 }
Пример #2
0
        <div class="col-sm-6">
            <?php 
echo $form->field($model, 'league_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(League::find()->all(), 'id', 'name'), 'language' => 'ru', 'options' => ['placeholder' => 'Выберите лигу...'], 'pluginOptions' => ['allowClear' => true]]);
?>
        </div>
    </div>

    <div class="row">
        <div class="col-sm-6">
            <?php 
echo $form->field($model, 'season_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(Season::find()->orderBy(['id' => SORT_DESC])->all(), 'id', 'name'), 'language' => 'ru', 'options' => ['placeholder' => 'Выберите сезон...'], 'pluginOptions' => ['allowClear' => true]]);
?>
        </div>
        <div class="col-sm-6">
            <?php 
echo $form->field($model, 'championship_part_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(ChampionshipPart::find()->all(), 'id', 'name'), 'language' => 'ru', 'options' => ['placeholder' => 'Выберите этап турнира...'], 'pluginOptions' => ['allowClear' => true]]);
?>
        </div>
    </div>

    <div class="row">
        <div class="col-sm-6">
            <?php 
$availableStadiums = [];
if (!$model->isNewRecord) {
    $stadium = Stadium::findOne($model->stadium_id);
    if (isset($stadium->id)) {
        $availableStadiums = [$stadium->id => $stadium->name];
    }
}
echo $form->field($model, 'stadium_id')->widget(SelectizeDropDownList::classname(), ['loadUrl' => Url::to(['stadium/stadium-list']), 'items' => $availableStadiums, 'options' => ['multiple' => false], 'clientOptions' => ['valueField' => 'value', 'labelField' => 'text', 'persist' => false]]);