是否可以以及如何将可变参数传递给Laravel中的中间件

詹姆斯·帕森斯

我希望建立一个中间件来检查用户是否是他们所在页面的订户。我尝试了几个选项,但是都需要将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时,我还尝试为每个用户设置新计划。来自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”。

shock_gone_wild

我不确定我是否完全了解您的要求。但是要获取某些请求路由参数的值,可以使用$ request-> route('param-identifyer')函数。将{$ id}作为参数传递给中间件是错误的方法。

 public function handle($request, Closure $next, $subscribe)
    {
        dd($request->route('id'));

        $c = DB::table('suscribes')->where('user_id', $request->user()->id)->where('subscribed_to', $subscribe)->count();

        return $next($request);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以将可变数量的参数传递给函数?

将参数传递给Echo路由中间件

将参数传递给Negroni中间件

如何将可变参数传递给观察者?

将参数传递给Laravel中的中间件

如何将可变函数参数作为参数传递给另一个函数?

如何将可变参数传递给std :: thread?

如何在Laravel 5.2中使用OR条件将多个参数传递给中间件

将构造参数传递给Redux中间件

如何将可变参数传递给虚函数

我如何在Laravel授权中将数字传递给中间件“可以”

如何在Laravel中将数组参数传递给中间件

如何将参数传递给Express JS中的中间件功能?

是否可以将参数传递给laravel中的全局中间件

将传递参数传递给异步中间件

如何将路由参数值传递给路由的中间件定义?

如何在中间件中传递多个门?(Laravel)

Laravel 5:将Model参数传递给中间件

如何将猫鼬ID传递给中间件?

将复杂参数传递给路由中间件

如何将 2 个参数传递给管理控制器上的中间件

将参数传递给 Laravel 中间件

如何将可变参数传递给期望

如何将数据传递给 NodeJS 中的下一个中间件函数

如何将可变参数传递给基于参数数量调用特定函数的函数?

如何将cookie作为参数从laravel中的控制器从中间件传递?

Node Koa 如何将参数传递给中间件?

如何将中间件调用中的参数传递给中间件?

如何将可变参数函数的其余参数传递给另一个函数?