/** * @return \yii\db\ActiveQuery */ public function getScoops() { $_q = $this->hasMany(Scoop::className(), ['id' => 'source_id'])->via('sourceTopics'); if (isset($this->limit)) { $_q->limit($this->limit); } return $_q; }
protected function buildSearchQuery() { //Join with source keywords and scoop tags $this->query = Scoop::find()->groupBy('scoopit_scoop.id')->joinWith('tags')->joinWith('source')->joinWith('source.keywords'); }
/** * @return \yii\db\ActiveQuery */ public function getScoop() { return $this->hasOne(Scoop::className(), ['id' => 'id']); }
private function _syncScoopTags($item) { $scoop = Scoop::findOne($item->id); if (isset($scoop)) { $this->_initPostProcessor('afterScoopTag', $scoop, 'tagPostProcessor'); foreach ($item->tags as $tag) { $model = Tag::findOne(['name' => $tag]); if (!isset($model)) { $model = new Tag(['name' => $tag]); $model->save(); } $scoop->linkTag($model->id); } } }