28 lines
628 B
PHP
28 lines
628 B
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Directories extends Model
|
|
{
|
|
public function getParentsAttribute()
|
|
{
|
|
return $this->constructParents($this->parent);
|
|
}
|
|
|
|
private function constructParents($id, $parents = [])
|
|
{
|
|
$tmp = Directories::find($id);
|
|
array_push($parents, $tmp);
|
|
if ($tmp->parent != null) {
|
|
return $this->constructParents($tmp->parent, $parents);
|
|
}
|
|
return array_reverse($parents);
|
|
}
|
|
|
|
public function documents()
|
|
{
|
|
return $this->hasMany(Document::class, 'directory', 'id');
|
|
}
|
|
}
|