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.


7 comentarios

Inicia sesión para comentar

Comentarios:

  • Masinfox Apps

    Masinfox Apps hace 3 meses

    En Laravel 11 . Para solucionar el error "Vite manifest not found" al hacer login, Vuelva a compilar el proyecto:

    A veces, simplemente volver a compilar el proyecto puede solucionar el problema. Desde el terminal de comando, ejecuta npm run dev

  • Isaac

    Isaac hace 4 meses

    Tenia un error con las rutas del inquilino .. se soluciono agregando este código

  • Juan Jose Soto

    Juan Jose Soto hace 5 meses

    Hola a todos, para los que estan usando laravel 11 en adelante se daran cuenta que el archivo RouteServiceProviders no esta, y que ahora las rutas se administran en : Bootstrap/App.php

    Aqui les dejo el codigo de como debe quedar:

    • Juan Montoya Vega hace 5 meses

      Muchas gracias!!!

    • Matías Roodschild hace 4 meses

      Muchas gracias x2!!!

    • Masinfox Apps hace 3 meses

      <?php
      
      use Illuminate\Foundation\Application;
      use Illuminate\Foundation\Configuration\Exceptions;
      use Illuminate\Foundation\Configuration\Middleware;
      use Illuminate\Support\Facades\Route;
      
       
      return Application::configure(basePath: dirname(__DIR__))
          ->withRouting(
              using: function(){
                  foreach (config('tenancy.central_domains') as $domain) {
                          Route::middleware('web')
                          ->domain($domain)
                          ->group(base_path('routes/web.php'));
                  }
                  Route::middleware('web')->group(base_path('routes/tenant.php'));
              },
              web: __DIR__.'/../routes/web.php',
              commands: __DIR__.'/../routes/console.php',
              health: '/up',
          )
          ->withMiddleware(function (Middleware $middleware) {
              //
          })
          ->withExceptions(function (Exceptions $exceptions) {
              //
          })->create();


       

    • Alfredo Pérez hace 2 meses

      Estoy levantando el proyecto con Laravel 11, estoy intentando implementarlo Bootstrap/App.php  cuando levando el servidor, no me genera ningún error, pero tampoco veo que se muestra el LOGIN, he implementado en el archivo provider.php que esta en la carpeta Bootstrap App\Providers\TenancyServiceProvider::class. no se que podría estar pasando.
      Muchas gracias, por el aporte

  • Jorge

    Jorge hace 5 meses

    Hola buen dia, me di cuenta que si usas Laravel y react inertia para implementar el tenancy si te autenticas con el tenancy y luego vas a la ruta central se autetnica solo yy no se como evitarlo, alguien mas le ha pasado que me pueda ayudar ?

  • Steven Ortiz

    Steven Ortiz hace 1 año

    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. 

    • Isaac hace 4 meses

      Tengo un error con las rutas. Entro desde http://bar.tenancy.test/ al login y llego a http://tenancy.test/login. He vuelto a ver esta parte del curso, pero no entiendo el motivo del error. he configurado correctamente el RouteServiceProvider