public function linkKeyword($keyword) { $keywordId = $keyword; if (!is_numeric($keyword)) { $model = Keyword::findOne(['name' => $keyword]); if (!isset($model)) { return false; } $keywordId = $model->id; } $model = new TopicKeyword(['topic_id' => $this->id, 'keyword_id' => $keywordId]); try { if ($model->save()) { if (php_sapi_name() == "cli") { echo 'New Topic linked to Keyword' . "\n"; } } } catch (\Exception $ex) { } return true; }
public function _syncKeyword($keyword) { $model = Keyword::findOne(['name' => $keyword]); //Create a new model if required if (!isset($model)) { $this->stdout('creating keyword with name ' . $keyword . "\n"); $model = new Keyword(['name' => $keyword]); if (!$model->save()) { VarDumper::dump($model->errors); } //Sync names if scoop.it name has changed (existing model only) } return true; }
/** * @return \yii\db\ActiveQuery */ public function getKeyword() { return $this->hasOne(Keyword::className(), ['id' => 'keyword_id']); }
/** * @return \yii\db\ActiveQuery */ public function getKeywords() { return $this->hasMany(Keyword::className(), ['id' => 'keyword_id'])->viaTable('scoopit_source_keyword', ['source_id' => 'id']); }
private function _getKeywordQuery() { return Keyword::find()->select(['id' => 'CONCAT("k",id)', 'name']); }