aldrumo / route-loader
基于Laravel的路由加载器,适用于sluggable(可生成URL别名)项目
0.2.1
2022-08-16 14:56 UTC
Requires
- php: ^7.3|^8.0
- illuminate/support: ^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.5
README
Laravel动态sluggable路由加载器包。
配置
创建一个实现了\Aldrumo\RouteLoader\Contracts\RouteLoader
接口的类。
此方法应返回一个包含具有slug
和id
属性的项目的集合。这可能是"页面"模型。
<?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