Тёмный

Step-by-Step Guide to Filament Multi-Tenancy 

Tuto1902
Подписаться 4,5 тыс.
Просмотров 7 тыс.
50% 1

Filament's Multi-Tenancy is not hard to implement. But it does require a bit of mental adjustment. I think the best way to learn about it is by example. So, let me take you through the 5 steps you need to follow to implement Multi-Tenancy in your Filament Admin Panel
00:00 What is Multi-Tenancy
01:09 Panel Configuration
01:36 Tenant Relationships
08:23 Tenant Registration
11:07 Tenant Profile
12:38 Tenant Scoped Queries
Latest Subscriber: mythsam
Subscriber Goal: ||||||||||||||| 67% ||||||......... 3.37K/5K
Start creating Filament Admin Panels today with the Filament Bootcamp
👉jorgearturorojas.gumroad.com/...
Do you like my content? Buy me a coffee and help the channel grow ☕️ mercury.streamelements.com/ti...
Latest tippers: MilenKo - $10.00, Sean - $5.00, Daniel GAMEL - $1.00, Mwest2020 - $5.00
Join me on Discord
/ discord
Discord Goal: ||||||||||||||| 73% |||||||........ 219/300
Latest discord member: jagato0♯0

Опубликовано:

 

4 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 33   
@Tuto1902
@Tuto1902 9 месяцев назад
WARNING *** PLEASE READ *** 17:00 Tenant middleware no longer goes inside the ->middleware() section. This will result in Filament::getTenant() returning null. Instead, now you need to use the ->tenantMiddleware() function. Here's the documentation link so you can read all about it: filamentphp.com/docs/3.x/panels/tenancy#using-tenant-aware-middleware-to-apply-global-scopes
@HamadAbdulla_7
@HamadAbdulla_7 10 месяцев назад
Thank you😍
@Tuto1902
@Tuto1902 10 месяцев назад
It is my absolute pleasure. I’m glad you find it helpful
@FindWebX
@FindWebX 9 месяцев назад
If the Jetstream Team, is similar to this? Thank you very much for valuable video❤❤❤
@Tuto1902
@Tuto1902 9 месяцев назад
I appreciate you watching and I'm glad you find it helpful.
@jensb5519
@jensb5519 Месяц назад
Nice and clear tutorial! But is it possible to combine this with the Filament Shield plugin?
@Tuto1902
@Tuto1902 Месяц назад
I think so. The way I see it, the shield plugin works as a second layer. First, can the user access the tenant. Second, what can the user do inside the tenant (Shield). I haven't tested this myself but I see no reason why it shouldn't work
@wakathepublic
@wakathepublic 4 месяца назад
can you make import excel, csv or another file for handling user in multi tenant ?
@Tuto1902
@Tuto1902 4 месяца назад
I’ll make a note for it. Thanks for the suggestion
@user-vu4re3tr1p
@user-vu4re3tr1p 9 месяцев назад
that's very helpful, thank you, but I'm having problems inputting customer data, do I have to add team_id to the customer table, and what should the relationship be like? I don't really understand how it works
@Tuto1902
@Tuto1902 9 месяцев назад
It all depends on what you’re trying to do. If your customers are going to belong to just one team, then yes. You need a team_id in the customers table and the relationship is One to Many (one team has many customers). But if the customer can have access to multiple teams, then you need a pivot table (customer_team) and the relationship is Many to Many
@user-vu4re3tr1p
@user-vu4re3tr1p 9 месяцев назад
okay tanks@@Tuto1902
@ruddra_nick_biswas
@ruddra_nick_biswas 10 дней назад
Hello Can you help me with this! I want to disable user to create new team! admin will create team for them! how can I achieve that kind of functionality ??
@Tuto1902
@Tuto1902 2 дня назад
Have you tried adding a TeamPolicy with a create() method? laravel.com/docs/11.x/authorization#policy-methods Filament will enforce any policy automatically.
@tahinuralam29
@tahinuralam29 2 месяца назад
How can I set the navigation bage count for the current tenant
@Tuto1902
@Tuto1902 2 месяца назад
I would just follow the docs. All queries made on resources should be scoped to the current tenant filamentphp.com/docs/3.x/panels/navigation#adding-a-badge-to-a-navigation-item As long as the model has the tenant relationships properly configured, everything should work as expected filamentphp.com/docs/3.x/panels/tenancy#configuring-the-tenant-relationships
@marianovallejos6542
@marianovallejos6542 6 месяцев назад
how solve nested relation ? All the tables need team_id record?
@Tuto1902
@Tuto1902 6 месяцев назад
If the records Belong To a single team, yes. If the records can Belong To Many different teams, then you need a pivot table and probably adjust the owner relationship name in the resource class filamentphp.com/docs/3.x/panels/tenancy
@jonmason9024
@jonmason9024 8 месяцев назад
Is there a way to tap into whatever event is fired when a tenant is changed? I want to do something whenever a user changes the tenant, but can't find anything in the docs to see how to do it?
@Tuto1902
@Tuto1902 8 месяцев назад
I don't think there's a way to do that. At least none that I know of
@philately
@philately Месяц назад
@@Tuto1902 Actually, there is. Every time a new tenant is set as "active" an Filament\Events\TenantSet is fired. You can register a listener to it and you're good to go.
@augustocarvalhochavez3192
@augustocarvalhochavez3192 7 месяцев назад
I have a model called category but I would like it to be shown in all the authenticated user's teams since they can have several teams?
@Tuto1902
@Tuto1902 7 месяцев назад
Create a ManyToMany relationship between Category and Team. Keep in mind that filament will try to look for a relationship called team() in the Category model. But since you want a ManyToMany relationship, I would suggest a relationship called teams() and then modify the owner relationship name in the CategoryResource class protected static ?string $tenantOwnershipRelationshipName = 'teams';
@augustocarvalhochavez3192
@augustocarvalhochavez3192 7 месяцев назад
@@Tuto1902 Thank you very much for answering. So I edited the Resource and it worked for me. public static function getEloquentQuery(): Builder { $team_id= Auth::user()->teams->pluck('id'); return Category::whereIn('team_id', $team_id); }
@1234321marty
@1234321marty 9 месяцев назад
How about global scope in model, can I still use it selected tenant instead of middlawere in resource?
@Tuto1902
@Tuto1902 9 месяцев назад
Yeah, that works too. I forgot to mention that option. That way you don’t need to fiddle with the panel configuration and it will give you the same results
@joeyboli
@joeyboli 7 месяцев назад
Did it work for you, it doesnt work for me
@rialmon
@rialmon 6 месяцев назад
Hi Tuto, thank you very much for this tutorial! I have a question, would you like to help me?. I'm facing this error: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db_name.team_user' doesn't exist. How do i fix it?
@rialmon
@rialmon 6 месяцев назад
Tuto, i've just found the solution: i only needed to create a pivot table named team_user, by executing "php artisan make:migration create_team_user_table"; then i put into the schema both $table->integer('user_id') and $table->integer('team_id'); then, finally, i run the migration.
@Tuto1902
@Tuto1902 6 месяцев назад
That works, but this doesn't enforce the foreign keys in the database. I would recommend using $table->foreignIdFor(App\Models\User::class) and $table->foreignIdFor(App\Models\Team::class). This creates the appropriate indexes and makes the table more read efficient.
Далее
This Livewire Feature Is A Hidden Gem 💎 ✨
6:07
Просмотров 1,7 тыс.
It was like a real simulation👩🏻‍💻
00:15
Просмотров 3,6 млн
Learnings from our multi-tenant Laravel application
9:58
Laravel 11: Multi-Tenancy with Multiple Databases
8:23
19 Admin Middleware - FilamentPHP V3 Tutorial
8:55
Просмотров 6 тыс.
NEW in Filament 3: Multi-Tenancy
12:14
Просмотров 15 тыс.
Laravel 10 Blog with Filament Admin Panel | Part 1
2:57:06