FIX: fix file manager
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Models\FileManager;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Psy\Exception\ErrorException;
|
||||
|
||||
class Directory extends Model
|
||||
{
|
||||
@@ -17,7 +18,16 @@ class Directory extends Model
|
||||
'user_id',
|
||||
'hidden'
|
||||
];
|
||||
protected $casts = [
|
||||
'hidden' => 'bool',
|
||||
'is_root' => 'bool'
|
||||
];
|
||||
|
||||
/**
|
||||
* Files in directory
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
public function files()
|
||||
{
|
||||
return $this->hasMany(File::class);
|
||||
@@ -30,14 +40,7 @@ class Directory extends Model
|
||||
*/
|
||||
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;
|
||||
return $this->hasMany(Directory::class, 'parent_id', 'id');
|
||||
}
|
||||
|
||||
public function subdirectories()
|
||||
@@ -47,4 +50,14 @@ class Directory extends Model
|
||||
|
||||
return $subdirectories;
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
// try to prevent from deleting root folder
|
||||
if ($this->is_root == true) {
|
||||
throw new ErrorException('Cannot delete root folder!');
|
||||
}
|
||||
|
||||
return parent::delete();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user