Configuración de rutas centrales
Comprar curso

7. Configuración de rutas centrales

En este capítulo se describe cómo hacer una modificación en el archivo "RouteServiceProvider.php" para asegurarse de que las rutas centrales solo estén registradas en dominios centrales. Se presentan los métodos "mapWebRoutes" y "mapApiRoutes", los cuales deben ser llamados manualmente desde el método "boot". También se explican los dominios centrales y cómo especificarlos en el archivo "tenancy.php". Además, se muestra cómo se verán las rutas de inquilinos y se sugiere hacer una pequeña modificación para poder ver el funcionamiento de múltiples inquilinos.


3 comentarios

Inicia sesión para comentar

Comentarios:

  • Steven Ortiz

    Steven Ortiz hace 6 meses

    Amigo una consulta si quiero llevar un proyecto multi-tenancy a producción la configuración a la hora de subirlo es la misma que cuándo subo un proyecto normal ósea no hay que configurar algo mas o algo extra ya que se supone que se crea una base de datos por inquilino cuando se registre al sistema ? eso como se maneja en producción tienes alguna idea sobre ese tema disculpa gracias.

  • Marcos Morales

    Marcos Morales hace 1 año

    Hola profe, estoy usando nginx y me da este error: Tenant could not be identified on domain tenancy.test que podra ser?

     

  • Victor Arana Flores

    Victor Arana Flores hace 1 año

    Registro de rutas centrales en dominios centrales

    En el archivo app/Providers/RouteServiceProvider.php, es necesario realizar un pequeño cambio para asegurarnos de que las rutas centrales se registren solo en los dominios centrales.

    Para ello, modifica los métodos mapWebRoutes() y mapApiRoutes() de la siguiente manera:

    protected function mapWebRoutes()
    {
        foreach ($this->centralDomains() as $domain) {
            Route::middleware('web')
                ->domain($domain)
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        }
    }
    
    protected function mapApiRoutes()
    {
        foreach ($this->centralDomains() as $domain) {
            Route::prefix('api')
                ->domain($domain)
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));
        }
    }
    
    protected function centralDomains(): array
    {
        return config('tenancy.central_domains');
    }
    

    Una vez que hayas realizado estos cambios, llama manualmente a los métodos mapApiRoutes() y mapWebRoutes() desde el método boot() en lugar de usar la llamada $this->routes().

    public function boot()
    {
        $this->configureRateLimiting();
    
        $this->mapApiRoutes();
        $this->mapWebRoutes();
    }

    Con estos cambios, te aseguras de que las rutas centrales se registren solo en los dominios centrales.