ユーザーが現在のページのサブスクライバーであるかどうかを確認するミドルウェアをセットアップしようとしています。いくつかのオプションを試しましたが、どちらも URL をミドルウェアに渡す必要がありました。
ルート
Route::get('premium/{id}', function ($id) {
return $id;
})->middleware('subscribe:{$id}');
ミドルウェア
public function handle($request, Closure $next, $subscribe)
{
//dd($subscribe);
$c = DB::table('suscribes')->where('user_id', $request->user()->id)->where('subscribed_to', $subscribe)->count();
return $next($request);
}
上記の $subscribe は明らかに {$id} の文字列を返しますが、連結を試みました。より良い方法はありますか?
Cashier と Stripe を使用しているので、ユーザーごとに新しいプランを設定することも試みました。ドキュメントから。
public function handle($request, Closure $next)
{
if ($request->user() && ! $request->user()->subscribed('main')) {
// This user is not a paying customer...
return redirect('billing');
}
return $next($request);
}
しかし、変数を「main」に渡す必要があります。