laravel 包中路由声明的顺序

Posted

技术标签:

【中文标题】laravel 包中路由声明的顺序【英文标题】:order of route declarations in laravel package 【发布时间】:2014-01-19 04:33:13 【问题描述】:

我制作了一个包含路由的 laravel 包,它是一个特殊的路由,可以捕获大量可能的 url。我不希望我的路由优先于主应用程序中声明的其他包或路由。如何确保我的路线是最后声明的路线?

【问题讨论】:

【参考方案1】:

路由按照它们在 routes.php 中列出的顺序进行评估。只需确保这条路线是数组中的最后一条即可。

更新

我相信你可以在 App::before 过滤器中注册路由,它会在所有用户路由之后注册它。

【讨论】:

我在谈论我的包裹中的路线。我在自己的路由文件中理解这是正确的,但是所有其他加载路由的包呢。 抱歉,第一次阅读时误解了您的问题。我已经更新了我的答案。 不,before 过滤器在其他命名路由之前运行这些路由,我想要在所有路由之后(没有名称或未知名称)。 啊,抱歉,您不是指过滤器之前的路由,而是过滤器之前的应用程序。所以你是说你在那里注册了一条路线? 是的。我还没有尝试过,但我相信如果你在App::before(function()) 中执行Route::get() 定义的路由将在routes.php 中的所有路由都已加载后进行评估,因为routes.php 在App::before 之前加载过滤器被评估。

以上是关于laravel 包中路由声明的顺序的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 控制器和包中的路由?

如何设置 Laravel 中间件的执行顺序?

Laravel 中的路由顺序很重要

如何在 Laravel 5.2 中使用资源声明路由

如何在 Laravel 中声明采用这两个参数的路由?

更改参数顺序的 Laravel 路由中出现 404 错误