2021-12-17 05:09:03 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Models\Scopes;
|
|
|
|
|
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
use Illuminate\Database\Eloquent\Scope;
|
|
|
|
|
|
|
|
class SiteScope implements Scope
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Apply the scope to a given Eloquent query builder.
|
|
|
|
*
|
|
|
|
* @param \Illuminate\Database\Eloquent\Builder $builder
|
|
|
|
* @param \Illuminate\Database\Eloquent\Model $model
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function apply(Builder $builder, Model $model)
|
|
|
|
{
|
2022-09-29 07:26:03 +00:00
|
|
|
$builder->when(
|
|
|
|
! collect($builder->getQuery()->wheres)->pluck('column')->contains(function($item) { return preg_match('/^(.*[^.]\.)?site_id/',$item); }),
|
|
|
|
function($q) use ($model)
|
|
|
|
{
|
|
|
|
return $q->where($model->getTable().'.site_id',config('site')->site_id);
|
|
|
|
}
|
|
|
|
);
|
2021-12-17 05:09:03 +00:00
|
|
|
}
|
|
|
|
}
|