Sindbad~EG File Manager

Current Path : /proc/self/cwd/app/
Upload File :
Current File : //proc/self/cwd/app/FileEntry.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Builder;
use Common\Files\FileEntry as CommonFileEntry;


/**
 * @method static \Illuminate\Database\Query\Builder|FileEntry onlyStarred()
 */
class FileEntry extends CommonFileEntry
{
    protected $table = 'file_entries';

    /**
     * @return \Illuminate\Database\Eloquent\Relations\MorphToMany
     */
    public function labels()
    {
        return $this->tags()->where('tags.type', 'label');
    }

    /**
     * Get only entries that are not children of another entry.
     *
     * @param Builder $builder
     * @return Builder
     */
    public function scopeRootOnly(Builder $builder) {
        return $builder->where('parent_id', null);
    }

    /**
     * Get only entries that are starred.
     * Only show entries from root or entries whose parent is not starred.
     *
     * @param Builder $builder
     * @return Builder
     */
    public function scopeOnlyStarred(Builder $builder) {
        return $builder->whereHas('labels', function($query) {
            return $query->where('tags.name', 'starred');
        })->where(function($query) {
            $query->rootOnly()->orWhereDoesntHave('parent', function($query) {
                return $query->whereHas('labels', function($q) {
                    return $q->where('tags.name', 'starred');
                });
            });
        });
    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists