簡體   English   中英

如何從 Laravel 6 中的包覆蓋應用程序路由

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

我正在嘗試為 Laravel 6 創建一個 Composer 包,但我無法獲取我的主路由/以覆蓋基本 Laravel 安裝中包含的默認/路由。

當我注釋掉 laravel 提供的 base / route 時,我的包路由確實有效,因此它正在被包注冊。

如果我在config/app.php文件中的 RouteServiceProvider 之前或之后包含我的包的服務提供者,它不會有任何不同。

我在這里缺少什么? 我如何確保我的包裹路線有優先權?

以下是相關的代碼位:

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,

LaravueSpaServiceProvider的相關部分

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

我的包的web.php路由文件:

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

這可能晚了,但對於其他人:

您可以要求用戶在他們的composer.json禁用自動包發現,然后在config/app.phpRouteServiceProvider之前手動注冊包的服務提供者

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM