我希望设置一个中间件来检查用户是否是他们所在页面的订阅者。我尝试了几个选项,但都需要将 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'。