'array']; public function sluggable() { return [ 'slug' => [ 'source' => 'name' ] ]; } public function iq_content_tree() { return $this->belongsTo('App\Models\IQContentTree', 'tree_id'); } public function iq_content_tree_node_parent() { return $this->belongsTo('App\Models\IQContentTreeNode', 'parent_id'); } public function iq_content_tree_node_childs() { return $this->hasMany('App\Models\IQContentTreeNode', 'parent_id', 'id')->orderBy('pos', 'ASC'); } public function iq_content_sites() { return $this->hasMany('App\Models\IQContentSite', 'tree_node_id', 'id'); } public function iq_content_site_first() { foreach ($this->iq_content_sites as $iq_content_site) { if (isset($iq_content_site->travel_guide) && $iq_content_site->travel_guide->active) { return $iq_content_site->travel_guide; } } } public function setIdentifierAttribute( $value ) { if(!isset($value) || $value == ""){ $this->attributes['identifier'] = Str::slug(pre_slug($this->name), '-'); }else{ $this->attributes['identifier'] = Str::slug(pre_slug($value), '-'); } } public function getUrl(){ return config('app.url_stern')."/".$this->getUri(); } public function getUri(){ $root = $this->iq_content_tree->identifier."/"; $ret = $this->getParentIdentifier(); return $root.$ret.$this->identifier."/"; } public function getParentIdentifier(){ if($node_parent = $this->iq_content_tree_node_parent){ $ret = $node_parent->getParentIdentifier(); return $ret.$node_parent->identifier."/"; } } public static function getTreeNodeOptions($tree_id, $id = false, $html = true, $choose = true) { $values = []; $ret = ""; $models = IQContentTreeNode::where('tree_id', $tree_id)->where('active', 1)->get(); if($html) { if($choose){ $ret .= '\n'; } foreach ($models as $model) { $attr = ($model->id == $id) ? ' selected="selected"' : ''; $ret .= '\n'; } return $ret; }else{ foreach ($models as $model) { $values[$model->id] = $model->name; } return $values; } return false; } // }