/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { if (Yii::$app->controller->id == 'kierunek') { $query = Kek::find()->where(['kierunekStudiow_id' => $params['kierunekStudiow']]); } elseif (Yii::$app->controller->id == 'przedmiot') { //$query = Przedmiot::find($params['kierunekStudiow'])->one()->getKeks(); $query = Kek::findBySql('SELECT * FROM kek WHERE id IN (SELECT kek_id FROM przedmiotKek WHERE przedmiot_id =' . $params['przedmiotId'] . ')'); } Yii::trace('query'); Yii::trace($query); $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; } $query->andFilterWhere(['id' => $this->id, 'kierunekStudiow_id' => $this->kierunekStudiow_id, 'kategoria' => $this->kategoria]); $query->andFilterWhere(['like', 'opis', $this->opis])->andFilterWhere(['like', 'symbol', $this->symbol]); return $dataProvider; }
public static function keksForMS($kid, $pid) { $result = ['Wiedza' => [], 'Umiejętności' => [], 'Kompetencje społeczne' => []]; foreach (Kek::findBySql('SELECT * FROM kek WHERE kierunekStudiow_id=' . $kid . ' AND id NOT IN (SELECT kek_id FROM przedmiotKek WHERE przedmiot_id=' . $pid . ')')->each() as $kek) { $result[static::categoryName[$kek->kategoria]][$kek->id] = $kek->symbol . ': ' . $kek->opis; Yii::trace('kategoria: ' . static::categoryName[$kek->kategoria]); } Yii::trace($result); return $result; }