Adquiere este curso para tener acceso a todas las lecciones
Comprar curso8. 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".
6 comentarios
Inicia sesión para comentar
Comentarios:
-
Diego Dominguez M hace 4 meses
Hola Víctor, voy llevando este curso bien… pero se me viene a la mente el escenario en donde tenga que subir este proyecto a un host compartido (tipo Hostgator o Hostinger) ¿Cómo se manejaría el tema de la creación automática de los subdominios en el CPanel? Gracias
-
Victor Arana Flores hace 4 meses
Hola Diego, tienes que crear un dns cuyo hostname sea * y apunte al ip de tu server.
-
Diego Dominguez M hace 4 meses
Gracias, disculpa Victor, no entendí. ¿podrias ser un poco mas especifico por favor?
-
Victor Arana Flores hace 4 meses
Hola Diego, cuando despliegas un proyecto aparte del servidor tienes que contratar un dominio. Para que los dominios apunten a tu servidor tabajas con dns.
Los dns son los que se encargan de especificar que si alguien pregunta por ese dominio, debe ridirigirlo hacia la ip de tu servidor.
De igual manera que agregas DNS para tus dominios, se agrega dns para los subdominios. Por ejemplo prueba.codersfree.com (En este caso el subdominio es prueba).
Puedes usar el comodin * para que todos los subdominios apunten al mismo servidor y sea el sistema multitenancy que has creado es el que se encargue de mostrar uno u otro contenido. -
Diego Dominguez M hace 3 meses
Victor, voy a revisar lo que me dices. Muchas gracias
-
Juandiego Astorga Lopez hace 3 meses
Hola Diego, pudiste implementarlo, tengo el mismo problema con Hosgator, al crear el Tenant no me genera la BD
-
-
Guillermo hace 9 meses
Hola Victor, podrias crear algunos ejemplos con API
-
Victor Arana Flores hace 9 meses
Hola Guillermo, lamentablemente el curso ya está culminado y no se consideró hacer una aplicación api, sino web.
Pero si gustas tambien cuento con un curso de apis, que en combinación con este lo podrías usar para lograr lo que estas buscando. -
Eribert Elias Marquez Bello hace 9 meses
Podrias crear otro curso de creacion de sistemas multy tenancy con api rest?
-
Victor Arana Flores hace 9 meses
Hola Eribert, por el momento no está en mis planes hacer un curso con esas caracteristicas.
-
-
José Daniel Mejias hace 10 meses
hola Victor …esta configuracion aplica a las rutas api ?. Ejemplo si tengo un proyecto con react y laravel, al momento de realizar mis rutas por defecto la creo en api, eso significa que en las rutas del tenancy debo definir todas las rutas ya definidas en api?
-
Steph Marin hace 10 meses
Tengo la misma cuestión
-
-
Luis Guillermo Oviedo Ochoa hace 1 año
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 año
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 hace 1 año
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 año
Hola Raul, podrías confirmarme si tu comentario quisiste decir que no se crea, o que no sabes crearlo.
-
Raul Hacho Cutipa hace 1 año
No genera ningun error pero no se crea la base de datos para el subdominio
-
Victor Arana Flores hace 1 año
Hola Raul ¿que S.O estás usando?
-
Raul Hacho Cutipa hace 11 meses
Windows 11
-
Esteban Benitez hace 10 meses
A mi me pasó, pero es porque no configuré el modelo, regresa a la clase 6 y asegúrate de haber hecho todos los pasos
-
-
Victor Arana Flores hace 1 año
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 año
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 11 meses
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.
-