public function handle(PageEvent $event) { $page = $event->getPage(); $title = $event->getNewTitle(); if ($title !== Page::DEFAULT_TITLE && empty($page->getInternalName())) { $slug = Str::slug($title); $unique = Str::unique($slug, function ($name) { return PageFacade::internalNameExists($name) === false; }); $page->setInternalName($unique); PageFacade::save($page); } }
/** * Increments a numeric suffix until the URL is unique. * * @param string $url * * @return string */ public static function makeUnique($url) { return Str::unique($url, function ($url) { return URLFacade::isAvailable($url); }); }