Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Concerns;
  3. use App\Scopes\CurrentCompanyScope;
  4. use Illuminate\Database\Eloquent\ModelNotFoundException;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Log;
  8. use Wallo\FilamentCompanies\FilamentCompanies;
  9. trait CompanyOwned
  10. {
  11. public static function bootCompanyOwned(): void
  12. {
  13. static::creating(static function ($model) {
  14. if (empty($model->company_id)) {
  15. if (Auth::check() && Auth::user()->currentCompany) {
  16. $model->company_id = Auth::user()->currentCompany->id;
  17. } else {
  18. Log::info('CompanyOwned trait: No company_id set on model ' . get_class($model) . ' ' . $model->id);
  19. throw new ModelNotFoundException('CompanyOwned trait: No company_id set on model ' . get_class($model) . ' ' . $model->id);
  20. }
  21. }
  22. });
  23. static::addGlobalScope(new CurrentCompanyScope);
  24. }
  25. public function company(): BelongsTo
  26. {
  27. return $this->belongsTo(FilamentCompanies::companyModel(), 'company_id');
  28. }
  29. }