where('model', 'travel_guide')->where('lvl', 1)->orderBy('order')->get(); }else{ $values = self::where('model', 'travel_guide')->where('lvl', 1)->orderBy('order')->get(); } foreach ($values as $value){ self::$pages[] = $value; $value->checkChilds(); if($childs = $value->getChilds()){ foreach ($childs as $child){ $ret[] = $child; } } } return self::$pages; } public function checkChilds(){ if($childs = $this->getChilds()){ foreach ($childs as $child){ self::$pages[] = $child; $child->checkChilds(); } } } public function getChilds(){ return TravelPageGuide::where('parent_id', $this->id)->where('lvl', ($this->lvl+1))->orderBy('order')->get(); } public function getContentNewAttribute() { return isset($this->attributes['content_new']) ? $this->attributes['content_new'] : $this->attributes['content']; } }