したがって、User
とWebsite
という2つのモデルがあります。Laravelスコープとサブスクリプション確認サブスクリプション
私はまた、購読のためにストライプを使用するLaravelレジ係を使用しています。私Website
モデルで
public function websites() {
return $this->hasMany('App\Models\Website');
}
関係::
public function user() {
return $this->belongsTo('App\User');
}
また、私Website
モデルに:私はウェブサイトを取得する場所
public function scopeNeedsUpdate($query) {
$query->whereRaw('last_queued <= DATE_SUB(NOW(), INTERVAL 12 HOUR)')->orderBy('created_at', 'desc');
}
スコープがある私のUser
モデルが
関係キューに入れる必要があります。しかし、私はそれがウェブサイトlast_queuedを返すだけの条件を追加する必要があります< = 12時間と関連するUser
は、アクティブなサブスクリプションを持っています。
私は雄弁にそれをするための最善の方法を本当に知っていません。私はそれを試みるどんなやり方もあまりにも面倒で終わる。
ステータスがアクティブであるかどうかをチェックするだけで、Laravelがステータスを保存しているので「1」になります。 'subscription_ends_at'も' null'または渡されていない日付でなければなりません。 (猶予期間)。 Laravelには、 'true 'または' false'を返す '$ user-> subscribed()'メソッドがあるので、私は直接何とかそれを使用できることを望んでいましたか? – zen
@zen私は以前はキャッシャーを使用していませんでしたが、今はドキュメントを調べて、必要なデータベーステーブルのタイプを見ています。あなたが望むものは完全にはっきりしていません。私の知る限りでは、最後の12時間のタイムスタンプを持ち、あなたのサイト*に登録されているアクティブなユーザに属し、そのサブスクリプションがアクティブである(last_queuedフィールドを持つウェブサイトのリストが必要ですか? 'subscription_ends_at'はnullか、まだ渡されていない日付ですか?) –
それはかなりそうです。私はLaravel 5.0を使用しています。私は、現金計算機が5.1以降に変更されたと考えています。あなたが説明した条件は正しいです。私は '$ user-> subscribed()'メソッドを利用する方が簡単だと言っていました。すべてのチェックが自動的に行われるからです。 – zen