Files
core/app/Models/FileManager/Directory.php
T

51 lines
1.2 KiB
PHP

<?php
namespace App\Models\FileManager;
use Illuminate\Database\Eloquent\Model;
class Directory extends Model
{
/**
* @var bool $timstamps have created_at and updated_at fields
*/
public $timestamps = true;
protected $fillable = [
'name',
'description',
'parent_id',
'user_id',
'hidden'
];
public function files()
{
return $this->hasMany(File::class);
}
/**
* Relationship with parent/sub directories
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function allSubdirectories()
{
$subdirectories = $this->hasMany(Directory::class, 'parent_id', 'id');
// todo fix this ugly hack! statement above produces WHERE parent_id IS NOT NULL and parent_id IS NULL when selecting subdirectories from root/none directory
if (is_null($this->id)) {
$subdirectories = $subdirectories->orWhereNull('parent_id');
}
return $subdirectories;
}
public function subdirectories()
{
$subdirectories = $this->allSubdirectories()
->where('hidden', false);
return $subdirectories;
}
}