parent_id == 0) return $directory->name; else return Directory::getPath($directory->parent_id) . ' / ' . $directory->name; } return ''; } public static function getPathArray($did) { if(!isset($did) || $did==null) return []; $directory = Directory::find($did); if($directory) { if($directory->parent_id == 0) return [$directory->id => $directory->name]; else return Directory::getPathArray($directory->parent_id) + [$directory->id => $directory->name]; } return []; } public static function getPathToRoot($did, $show_itself=false) { if(!isset($did) || $did==null) return []; $directory = Directory::find($did); if($directory) { $directory =($show_itself) ? $directory : Directory::find($directory->parent_id); if($directory) { if($directory->parent_id == 0) return [$directory->id]; else return array_merge([$directory->id], Directory::getPathToRoot($directory->parent_id)); } } return []; } }