Example #1
0
 /**
  * Persist keywords
  * @param  Links $link
  * @param  array $keywords
  * @property string $new_keyword->id Id of the keyword
  * @return void           
  */
 public function attachKeywords($link, $keywords)
 {
     $existing_keywords = array_pluck($link->keywords->toArray(), 'id');
     foreach ($keywords as $keyword) {
         $keyword_object = Keywords::make($keyword['text'], str_slug($keyword['text']));
         $new_keyword = $this->keywords->save($keyword_object);
         SearchIndex::upsertToIndex($new_keyword);
         if (!in_array($new_keyword->id, $existing_keywords)) {
             $link->keywords()->attach($new_keyword->id, ['relevance' => $keyword['relevance']]);
         }
     }
 }