public function findOrCreateOne($keyword_value) { # Attempt to find keyword $keyword = KeywordQuery::create()->filterByValue($keyword_value)->findOne(); # Handle keyword if (!$keyword) { # Create keyword $keyword = new Keyword(); $keyword->setValue($keyword_value); # Create keyword synonym $keyword_synonym = new KeywordSynonym(); $keyword_synonym->setKeyword($keyword)->setValue($keyword_value)->save(); } # Return keyword return $keyword; }
function find_keyword($keyword_name) { # Attempt to find keyword $keyword = KeywordQuery::create()->useKeywordSynonymQuery()->filterByValue($keyword_name)->endUse()->findOne(); # Handle keyword if ($keyword) { # Return keyword return $keyword; } else { # Create keyword $keyword = new Keyword(); $keyword->setValue($keyword_name)->save(); # Create synonym $synonym = new Synonym(); $synonym->setKeyword($keyword)->setValue($keyword_name)->save(); # Return keyword return $keyword; } }