簡體   English   中英

Laravel子域路由問題

[英]Laravel subdomain routing issue

我的Laravel應用程序(ET,EN,LV,LT)中每種語言都有三個子域,因此我的域就像et.app.foo.com等。我為子域和常規域創建了一個路由組。是不同的用戶類型,這些用戶類型也使用前綴和名稱進行分組。我的登錄頁面運行正常,但所有其他路由都停止了工作。

這是我的web.php

$appRoutes = function () {
    require base_path() . '/routes/publicRoutes.php';
    require base_path() . '/routes/physicianRoutes.php';
    require base_path() . '/routes/adminRoutes.php';
    require base_path() . '/routes/generalRoutes.php';
    require base_path() . '/routes/formRoutes.php';
};

/**
 * Group main domain routes
 */
Route::group(
    [
        'domain' => 'app.foo.com'
    ], $appRoutes);

/**
 * Group sub domain routes
 */
Route::group(
    [
        'domain' => '{subdomain}.app.foo.com',
        'as'     => '{subdomain}.'
    ], $appRoutes);

現在,這是我的管理路線的一部分:

Route::group(
        [
            'prefix'     => 'admin',
            'as'         => 'admin.',
            'middleware' => ['auth', 'admin']
        ], function () {

        //when admin land on /home
        Route::get("/home",
            array('as'   => 'dashboard',
                  'uses' => 'Dashboard\HomeController@admin')
        );

我在我的子域路由和主域路由中收到此錯誤:

Missing required parameters for [Route: {subdomain}.admin.dashboard] [URI: admin/home]. (View: 

在導航中,我正在調用route()函數。 如何更改此設置,以使子域正常工作?

編輯

當我手動將網址輸入到地址欄時,它可以工作。 但是當我將鼠標懸停在href上時,它不會顯示到子域地址,而是顯示到我的主域

編輯2

我創建了用於路由的自定義幫助程序

        function subdomain_route($route)
    {
        if (Config::get('app.subdomain') != null):
            return route($route, ['subdomain' => \Config::get('app.subdomain')]);
        else:
            return route($route);

        endif;
    }

現在,我可以看到該路由的參數是subdomain => en但它仍將我重定向到主域。 我該如何解決?

嘗試將子域路由放置在web.php主域路由之前

我有一個類似的問題,可以通過將Route::domain (或Route::group(['domain' => 'app.foo.com'], $appRoutes)在您的情況下Route::group(['domain' => 'app.foo.com'], $appRoutes) )放置在web.php頂部來解決web.php文件。

$appRoutes = function () {
    require base_path() . '/routes/publicRoutes.php';
    require base_path() . '/routes/physicianRoutes.php';
    require base_path() . '/routes/adminRoutes.php';
    require base_path() . '/routes/generalRoutes.php';
    require base_path() . '/routes/formRoutes.php';
};

/**
 * Group sub domain routes
 */
Route::group([
        'domain' => '{subdomain}.app.foo.com',
        'as'     => '{subdomain}.'
    ], $appRoutes);

/**
 * Group main domain routes
 */
Route::group(['domain' => 'app.foo.com'], $appRoutes);

暫無
暫無

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

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