'bool', 'is_root' => 'bool' ]; /** * Files in directory * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function files() { return $this->hasMany(File::class); } /** * Relationship with parent/sub directories * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function allSubdirectories() { return $this->hasMany(Directory::class, 'parent_id', 'id'); } public function subdirectories() { $subdirectories = $this->allSubdirectories() ->where('hidden', false); 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(); } }