Tryag File Manager
Home
||
Turbo Force
||
B-F Config_Cpanel
Current none :
/
var
/
www
/
html
/
tpid-handbook
/
app
/
Entities
/
Queries
/
Or
Select Your none :
Upload File :
New :
File
Dir
/var/www/html/tpid-handbook/app/Entities/Queries/EntityQueries.php
<?php namespace BookStack\Entities\Queries; use BookStack\Entities\Models\Entity; use Illuminate\Database\Eloquent\Builder; use InvalidArgumentException; class EntityQueries { public function __construct( public BookshelfQueries $shelves, public BookQueries $books, public ChapterQueries $chapters, public PageQueries $pages, public PageRevisionQueries $revisions, ) { } /** * Find an entity via an identifier string in the format: * {type}:{id} * Example: (book:5). */ public function findVisibleByStringIdentifier(string $identifier): ?Entity { $explodedId = explode(':', $identifier); $entityType = $explodedId[0]; $entityId = intval($explodedId[1]); $queries = $this->getQueriesForType($entityType); return $queries->findVisibleById($entityId); } /** * Start a query of visible entities of the given type, * suitable for listing display. */ public function visibleForList(string $entityType): Builder { $queries = $this->getQueriesForType($entityType); return $queries->visibleForList(); } protected function getQueriesForType(string $type): ProvidesEntityQueries { /** @var ?ProvidesEntityQueries $queries */ $queries = match ($type) { 'page' => $this->pages, 'chapter' => $this->chapters, 'book' => $this->books, 'bookshelf' => $this->shelves, default => null, }; if (is_null($queries)) { throw new InvalidArgumentException("No entity query class configured for {$type}"); } return $queries; } }