dgner Genel olarak doğru.
Öncelikle alt alan adlarının dinamik oluşmasını sağlamanız lazım. Bunun için sunucuda DNS ayarlarında tüm subdomain'ler için bir wildcard A kaydı eklemeniz lazım:
+----------------+-------+----+------+---------------+
| Domain | TTL | | Type | IP |
+================+=======+====+======+===============+
| *.example.com. | 14400 | IN | A | 78.224.75.112 |
+----------------+-------+----+------+---------------+
Böylece tüm subdomainler ana domainin gittiği yere, yeni public'e istek atmış olacak. Laravel'de bu alt alan adlarını (üstteki gibi A kaydını eklediğiniz taktirde) rotada yakalayabiliyorsunuz:
Route::domain('{restaurant}.example.com')->group(function () {
// Burada artık kullanabileceğiniz bir $restaurant değişkeniniz var. Örneğin
// res1.example.com ile gelinirse $restaurant değeri res1 olacak.
});
Diğer bir yol ise URL segment kullanarak tenantları ayırmak. Mesela Paraşüt o şekilde çalışıyor. Aşağıdaki linklerde 123456 şu an işlem yapan firmanın id'si:
https://uygulama.parasut.com/123456/
https://uygulama.parasut.com/123456/satislar
https://uygulama.parasut.com/123456/kasa-ve-bankalar/654321
Geri kalanı için artık Laravel biliyor olmanız lazım. Verdiğim linkin dokümanlarını ve kaynak kodunu incelemeniz lazım:
https://tenancy.dev/docs/tenancy/1.x
https://github.com/tenancy/tenancy