diff --git a/src/FilamentFabricatorManager.php b/src/FilamentFabricatorManager.php index 832522f..61d7a10 100644 --- a/src/FilamentFabricatorManager.php +++ b/src/FilamentFabricatorManager.php @@ -197,7 +197,7 @@ public function getPageUrls(): array public function getPageUrlFromId(int|string $id, bool $prefixSlash = false, array $args = []): ?string { - /** @var PageContract&Model|null $page */ + /** @var (PageContract&Model)|null $page */ $page = $this->getPageModel()::query()->find($id); return $page?->getUrl($args); diff --git a/src/Http/Controllers/PageController.php b/src/Http/Controllers/PageController.php index 9422b1f..8ac548c 100644 --- a/src/Http/Controllers/PageController.php +++ b/src/Http/Controllers/PageController.php @@ -24,7 +24,7 @@ public function __invoke(?Page $filamentFabricatorPage = null): string } /** @var ?class-string $layout */ - $layout = FilamentFabricator::getLayoutFromName($filamentFabricatorPage?->layout); + $layout = FilamentFabricator::getLayoutFromName($filamentFabricatorPage->layout); if (! isset($layout)) { throw new \Exception("Filament Fabricator: Layout \"{$filamentFabricatorPage->layout}\" not found"); diff --git a/src/Services/PageRoutesService.php b/src/Services/PageRoutesService.php index 2b934f9..5a826cb 100644 --- a/src/Services/PageRoutesService.php +++ b/src/Services/PageRoutesService.php @@ -177,16 +177,17 @@ protected function getIdToUrisMapping(): array // Any optimization to this can greatly improve the entire package's performances // in one fell swoop. return Cache::rememberForever(static::ID_TO_URI_MAPPING, function () { - $pages = FilamentFabricator::getPageModel()::query() + $mapping = FilamentFabricator::getPageModel()::query() ->with('parent') - ->get(); - - $mapping = []; - $pages->each(function (Page $page) use (&$mapping) { - // Note that this also has the benefits of computing - // the page's local caches. - $mapping[$page->id] = $page->getAllUrls(); - }); + ->get() + ->toBase() + ->mapWithKeys(function (Page $page):array { + // Note that this also has the benefits of computing + // the page's local caches. + // @phpstan-ignore-next-line + return [$page->id => $page->getAllUrls()]; + }) + ->all(); return $mapping; });