Esempio n. 1
0
 /**
  * Create a new tag if valid or return existing one
  *
  * @param string   $name
  * @param null|Tag $parent
  *
  * @return bool|$this
  */
 public function validOrCreate($name, Tag $parent = null)
 {
     $group = $parent === null ? true : false;
     $tag = $this->where('name', '=', $name)->first();
     if ($tag && $tag->group != $group) {
         return false;
     }
     if (!$tag) {
         $tag = new Tag();
         $tag->name = $name;
         $tag->group = $group;
         if (!is_null($parent)) {
             $tag->parent_id = $parent->id;
             $tag->setRelation('parent', $parent);
         }
         $tag->save();
     }
     return $tag;
 }