aldrumo/route-loader

基于Laravel的路由加载器,适用于sluggable(可生成URL别名)项目

0.2.1 2022-08-16 14:56 UTC

This package is auto-updated.

Last update: 2024-09-16 19:36:56 UTC


README

Laravel动态sluggable路由加载器包。

配置

创建一个实现了\Aldrumo\RouteLoader\Contracts\RouteLoader接口的类。

此方法应返回一个包含具有slugid属性的项目的集合。这可能是"页面"模型。

<?php

namespace App\Routes;

use Aldrumo\RouteLoader\Contracts\RouteLoader;
use App\Models\Page;
use Illuminate\Support\Collection;

class FilledRouteLoader implements RouteLoader
{
    public function getRoutes(): Collection
    {
        return Page::where('is_active', true)->get();
    }
}

在您的应用服务提供者中注册此集合。

use Aldrumo\RouteLoader\Contracts\RouteLoader;
use App\Routes\PageRouteLoader;
$this->app->bind(
    RouteLoader::class,
    PageRouteLoader::class
);

生成器

将以下行放置在您的应用服务提供者的"boot"方法中

use Aldrumo\RouteLoader\Generator;
use Illuminate\Support\Facades\Route;

Route::middleware('web')
    ->group(
        function () {
            $this->app[Generator::class]->generateRoutes();
        }
    );

清除路由

resolve(\Aldrumo\RouteLoader\Generator::class)->clearRoutes();
php artisan aldrumo:clear-routes