Creación de Inquilino y Dominio desde Tinker
Comprar curso

8. Creación de Inquilino y Dominio desde Tinker

En este capítulo se muestra cómo crear inquilinos utilizando tinker para fines de prueba. Se presenta el código que utiliza el método "create" de la clase "Tenant" para crear dos inquilinos con sus respectivos dominios utilizando el método "create" de la relación "domains".


3 comentarios

Inicia sesión para comentar

Comentarios:

  • Luis Guillermo Oviedo Ochoa

    Luis Guillermo Oviedo Ochoa hace 1 mes

    Hola me he quedado en el min -04:56  al probar el subdominio me sale el siguiente mensaje de error me podrias ayudar 
    Class "app\Models\Tenant" not found
    C:\wamp64\www\Tenancy\vendor\stancl\tenancy\src\Resolvers\DomainTenantResolver.php : 35

    • Luis Guillermo Oviedo Ochoa hace 1 mes

      Resuelto: en config\tenancy.php tenia en 'tenant_model' => Tenant::class, y era  'tenant_model' => \App\Models\Tenant::class, de esta manera si me muesta el mensaje de los subdominios 

  • Raul Hacho Cutipa

    Raul Hacho Cutipa hace 1 mes

    no se crea la base de datos. devuelve. este error  (data: null,)

     

    $tenant1 = App\Models\Tenant::create(['id' => 'subdominio1']);                                                                           
    = App\Models\Tenant {#4589
       id: "subdominio1",
       updated_at: "2023-04-07 21:39:25",
       created_at: "2023-04-07 21:39:25",
       data: null,
     }

    • Victor Arana Flores hace 1 mes

      Hola Raul, podrías confirmarme si tu comentario quisiste decir que no se crea, o que no sabes crearlo. 

    • Raul Hacho Cutipa hace 1 mes

      No genera ningun error pero no se crea la base de datos para el subdominio

    • Victor Arana Flores hace 1 mes

      Hola Raul ¿que S.O estás usando?

    • Raul Hacho Cutipa hace 4 semanas

      Windows 11

  • Victor Arana Flores

    Victor Arana Flores hace 1 mes

    Para propósitos de prueba, puedes crear un inquilino en tinker sin necesidad de crear controladores o vistas aún. Simplemente abre tinker ejecutando el siguiente comando en la terminal:

    php artisan tinker

    Una vez dentro, crea tu primer inquilino con el siguiente código:

    $tenant1 = App\Models\Tenant::create(['id' => 'foo']);
    $tenant1->domains()->create(['domain' => 'foo.localhost']);

    También puedes crear tantos inquilinos como desees siguiendo el mismo patrón, como lo hacemos a continuación:

    $tenant2 = App\Models\Tenant::create(['id' => 'bar']);
    $tenant2->domains()->create(['domain' => 'bar.localhost']);

    Una vez que hayas creado tus inquilinos, el siguiente paso es crear un usuario dentro de la base de datos de cada uno. Esto se puede hacer fácilmente ejecutando el siguiente código:

    App\Models\Tenant::all()->runForEach(function () {
        App\Models\User::factory()->create();
    });

    Con estos sencillos pasos ya habrás creado inquilinos en Laravel y estarás listo para seguir avanzando con tu proyecto. ¡Anímate a probarlo!

    • Luis Guillermo Oviedo Ochoa hace 1 mes

      hola, pregunta, los subdominios se pueden definir 'bar.localhost' o para efecto del host que se creo se debe colocar mejor 'bar.tenancy.test'

    • Victor Arana Flores hace 1 mes

      Hola Luis, si usas un bar.localhost en vez de bar.tenancy.test estarías usando un sobdominio para localhost y no para tenancy.test lo cual no tendría mucho sentido.

      Los subdominios indican que todos son instancias de un mismo dominio, pero distingues a una instancia de otro por su subdominio.

      Es como que mi web sea codersfree.com, y trabaje con “subdominios” web.victor-arana.com

      En todo caso trabajaría con diminios diferentes, y no tendría porque trabajar con subdiminios.