【问题标题】:root route problem in laravel 6.2 RouteServiceProviderlaravel 6.2 RouteServiceProvider 中的根路由问题
【发布时间】:2020-08-30 19:42:06
【问题描述】:

我在 laravel RouteServiceProvider 中定义了这两个不同的路由,如下所示:

protected function mapABCRoutes()
    {
        Route::prefix('abc')
            ->middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/abc.php'));
    }

protected function mapXYZRoutes()
    {
        Route::prefix('xyz')
            ->middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/xyz.php'));
    }

我在 abc.php

中定义了一个路由
Route::get('/', function(){ return '<h1>ABC Admin</h1>'; })->name('abc.dashboard');

除了 route('abc.dashboard') 之外,abc.php 中定义的所有路由都可以正常工作。它抛出 404 消息 “在此服务器上找不到请求的资源 /abc。” xyz.php 我在 ubuntu 中使用 laravel 6.2 在 apache 中处理所有这些事情,并启用了 mod 重写。我不明白为什么这些路线不起作用?但相同类型的路由也适用于 web.php

中的 laravel 默认路由
Route::get('/', function () { return view('auth.login'); });

【问题讨论】:

    标签: php laravel laravel-routing laravel-6.2


    【解决方案1】:

    路由组并不意味着您可以多次覆盖相似的路由,它通常有助于清理路由文件。例如,我为我的一些主要模块创建了单独的路由文件,并将它们放入各自的路由文件中,并映射到RouteServiceProvider

    当您在这里使用网络路由时,您可以在此处为路由添加前缀,如下所示, 为xyz.php

    Route::group( [
    'prefix' => 'xyz'],
    function ( Router $api ) {
    //your routes
    });
    

    abc.php 等也可以这样做。

    【讨论】:

    • 类似路线?
    • 不相似的路由 url 和路由名称不同一个会导致 www.hostname.com/abc 路由名称 (->name('abc.dashboard')) 另一个会是 www.hostname.com/ xyz 路线名称 : (->name('xyz.dashboard'))
    • @MuhammadHabib 表示如果您尝试从不同的文件访问相同的路线两次。这实际上是不可能的。上述解决方案适用于您的情况。试一试
    【解决方案2】:

    不确定...可能对您有帮助...

    Route::group(['prefix' => 'abc'], function(){
        Route::get('/', function(){ return '<h1>ABC Admin</h1>'; })->name('abc.dashboard');
    });
    

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 2015-05-23
      • 1970-01-01
      • 2014-09-29
      • 2014-08-14
      • 2018-11-20
      • 1970-01-01
      相关资源
      最近更新 更多