简体   繁体   English

如何从 Laravel 6 中的包覆盖应用程序路由

[英]How to override an app route from a package in Laravel 6

I am attempting to create a composer package for Laravel 6 but I can not get my main route / to override the default / route included with the base Laravel installation.我正在尝试为 Laravel 6 创建一个 Composer 包,但我无法获取我的主路由/以覆盖基本 Laravel 安装中包含的默认/路由。

My package route does works when I comment out the base / route provided by laravel so it is being registered by the package.当我注释掉 laravel 提供的 base / route 时,我的包路由确实有效,因此它正在被包注册。

It doesn't make any different if I include my package's service provider before or after the RouteServiceProvider in the config/app.php file.如果我在config/app.php文件中的 RouteServiceProvider 之前或之后包含我的包的服务提供者,它不会有任何不同。

What am I missing here?我在这里缺少什么? How do I ensure my package routes have priority?我如何确保我的包裹路线有优先权?

Here are the relevant bits of code:以下是相关的代码位:

config/app.php

/*
 * Application Service Providers...
 */
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
Wheelmaker\LaravueSpa\LaravueSpaServiceProvider::class,  // MY SERVICE PROVIDER
App\Providers\RouteServiceProvider::class,

The relevant section of LaravueSpaServiceProvider LaravueSpaServiceProvider的相关部分

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

My Package's web.php route file:我的包的web.php路由文件:

<?php
Route::get('/', function(){
  $initData = [
    'appName' => config('app.name'),
    'user' => Auth::user(),
];
  return view('laravue-spa::app', compact('initData'));
})->middleware(['web']);

This may be late but for someone else:这可能晚了,但对于其他人:

You can ask the user to disable the auto package discovery in their composer.json and then manually register the package's Service Provider before the RouteServiceProvider in config/app.php您可以要求用户在他们的composer.json禁用自动包发现,然后在config/app.phpRouteServiceProvider之前手动注册包的服务提供者

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM