edms/app/Directory.php

71 lines
1.8 KiB
PHP
Raw Normal View History

2022-06-06 05:07:54 +00:00
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Directory extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'directories';
protected $fillable = [
'parent_id', 'name', 'year', 'user_id', 'title', 'description', 'by_admin'
];
public static function getPath($did)
{
if(!isset($did) || $did==null)
return '';
$directory = Directory::find($did);
if($directory)
{
if($directory->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 [];
}
}