style updates
This commit is contained in:
@@ -1,24 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sites\Concerns;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||
use Modules\Sites\Models\Site;
|
||||
use Modules\Sites\Services\SiteManager;
|
||||
|
||||
trait BelongsToSites
|
||||
{
|
||||
public function sites(): MorphToMany
|
||||
{
|
||||
return $this->morphToMany(Site::class, 'content', 'site_content', 'content_id', 'site_id')->withPivot('is_primary')->withTimestamps();
|
||||
}
|
||||
|
||||
public function scopeForCurrentSite(Builder $query): Builder
|
||||
{
|
||||
$site = app(SiteManager::class)->current();
|
||||
|
||||
return $site ? $query->whereHas('sites', fn (Builder $sites) => $sites->whereKey($site->id)) : $query;
|
||||
}
|
||||
|
||||
public function assignToSite(Site|int $site, bool $primary = false): void
|
||||
{
|
||||
$id = $site instanceof Site ? $site->getKey() : $site;
|
||||
if ($primary) { $this->sites()->updateExistingPivot($this->sites()->pluck('sites.id'), ['is_primary' => false]); }
|
||||
if ($primary) {
|
||||
$this->sites()->updateExistingPivot($this->sites()->pluck('sites.id'), ['is_primary' => false]);
|
||||
}
|
||||
$this->sites()->syncWithoutDetaching([$id => ['is_primary' => $primary]]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user