Поэтому я пытаюсь создать что-то вроде глобальной области видимости для моей модели, чтобы мне не приходилось go и каждый раз думал о некоторых параметрах.
Дело в том, что в настоящее время у меня есть следующее Scopes-class;
<?php
namespace App\Scopes;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class NeedsPaymentScope implements Scope
{
/**
* Apply the scope to a given Eloquent query builder.
*
* @param Builder $builder
* @param Model $model
* @return void
*/
public function apply(Builder $builder, Model $model)
{
if ($model->needs_payment) {
$builder->where('is_paid', '=', true);
}
}
}
И он включен в мою модель следующим образом:
protected static function boot()
{
parent::boot();
static::addGlobalScope(new NeedsPaymentScope());
}
Теперь, поскольку в классе Scope переменная $model
как всегда пуста , Я не могу выполнить проверку if (что необходимо сделать!). Как мне реализовать этот лог c для каждого get()
, find()
; findOrFail()
, ... метод?