РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppflSpTnMd 165 of 250 menu
◀ ▶

Модель арендатора в Filament

Давайте зададим модель арендатора. Команда хранится в таблице teams, а работник связывается с ней через промежуточную таблицу. После настройки панель откроем по /admin/acme.

Создадим модель Team.php и связь users многие ко многим:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class Team extends Model { protected $fillable = [ 'name', 'slug', 'domain', ]; public function users(): BelongsToMany { return $this->belongsToMany(User::class); } } ?>

На User.php добавим обратную связь teams:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function teams(): BelongsToMany { return $this->belongsToMany(Team::class); } } ?>

В провайдере панели укажем арендатора через tenant:

<?php namespace App\Providers\Filament; use App\Models\Team; use Filament\Panel; use Filament\PanelProvider; class AdminPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->default() ->id('admin') ->path('admin') ->login() ->tenant(Team::class); } } ?>

Привяжите панель к команде, в которой состоит работник.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить