Единственный способ справиться с этим - иметь выделенную модель для вашего вида с областями применения, применимыми к каждой из соответствующих моделей:
<?php
namespace App\Scopes;
use Illuminate\Database\Eloquent\Scope;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;
class AgeScope 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)
{
$builder->where('age', '>', 200);
}
}
Затем в вашей ExampleModel И вам модель MyView
protected static function boot()
{
parent::boot();
static::addGlobalScope(new AgeScope);
}
Так что, когда вы захотите отредактировать область, она будет отражена в каждом из ваших запросов
НО
Вы всегда будете знать, является ли ваша модель из вашей view_table или изВы таблица example_model.
Если вам нужно, чтобы некоторые аксессоры или функции использовались обоими, я рекомендую вам поместить их в черту и использовать их в обеих моделях
trait ExampleModelTrait
{
getTestAttribute(){
return strtolower($this->column_name);
}
}
, а затем
use ExampleModelTrait;