【问题标题】:Adding a route in Laravel as the last route, from a composer module?从作曲家模块在 Laravel 中添加一条路线作为最后一条路线?
【发布时间】:2019-03-28 20:07:03
【问题描述】:

我正在为 Laravel 制作一个模块,为了便于重用,我将其制作为一个单独的 composer 模块。

在这个模块中,我必须定义一个包罗万象的路线,但我不希望它覆盖项目中任何手动添加的路线。

有没有人知道我怎样才能得到这种行为?

我在 ServiceProviders boot() 方法中注册我的路由,如下所示:

public function boot()
    {
        $this->loadMigrationsFrom(__DIR__.'/migrations');
        $this->loadRoutesFrom(__DIR__.'/routes/routes.php');
    }

而且 routes.php 也比较简单:

$regex = ".*";

Route::namespace('Asator\\Runepost\\Controllers')
    ->middleware(['web', DynamicContent::class])
    ->group(function($route) use ($regex) {
        $route->any('{any}', 'RunepostFrontController')->where('any', $regex);
    });

在手动添加的路线运行后,是否可以以某种方式将路线添加为最后一条路线?

【问题讨论】:

    标签: laravel laravel-routing


    【解决方案1】:

    只需在 config/app.php 中应用的 RouteServiceProvider 之后添加模块的 ServiceProvider,并确保你的 catch-all-route 是模块路由的最后一个路由。

    【讨论】:

    • 哦,是的,这可以做到,谢谢 :) 我在 composer.json 中使用自动发现,你知道一种方法来确定它如何发现它的优先级吗?否则我将不得不手动添加它,如果可能的话它会很酷:)
    • 查看 Taylor 关于如何禁用特定包的自动发现的中等帖子:medium.com/@taylorotwell/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 2015-11-26
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多