でのモデルのために複数のグローバルスコープを定義します。加えては<strong>SoftDelete</strong>能力とポストアクティブステータスを決定する<strong>アクティブ</strong>ブールフィールドを持つ私はポストのモデルを持っているLaravel
class Post extends Model implements SluggableInterface
{
use SoftDeletes;
protected $primaryKey = 'post_id';
.
.
.
}
、ポストモデルは公開投稿の日付を開始保持start_date
フィールドを持っています。
今、Anonymous GlobalScope Laravel 5.2をアクティブな投稿とその投稿start_dat
eがNULLかNow()より小さいフィルタリングとフェッチに使用したいと思います。非ソフト削除モデルに加えて。そのために
私はPost
モデルにこれを追加しました:単独で
protected static function boot()
{
parent::boot();
static::addGlobalScope('active', function(Builder $builder){
$builder->where('active',1);
});
static::addGlobalScope('scheduled', function(Builder $builder){
$builder
->whereNull('start_date')->orWhere(function ($query) {
$query->where('start_date', '<=', Carbon::now());
});
});
}
active
グローバルスコープ、私はscheduled
という名前の二スコープを追加したときに正常に動作しますが、すべてのレコードがソフト削除され、アクティブでないモデルが含ま返します。
問題は何ですか?私は理解できません