Я хочу создать промежуточное программное обеспечение, чтобы проверить, является ли пользователь подписчиком на странице, на которой они находятся. Я попробовал несколько вариантов, но оба они нуждались в передаче URL-адреса в Middleware.Возможно ли это, и как это сделать, чтобы передать переменный параметр промежуточному программному обеспечению в Laravel
Маршрут
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);
}
Вышеприведенные $ подписываться очевидно возвращает строку {$ ид}, но попытались конкатенации. Есть ли способ лучше?
Как я использую Cashier and Stripe Я также попытался создать новый план для каждого пользователя. From docs.
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».