Laravel |从中间件注入控制器

时间:2019-02-16 20:53:01

标签: php laravel

这更多是关于如何按照最佳做法做某事的问题。

我有一个网站,它将托管多个“商店”。所有存储都将从一个子域运行,例如store1.example.com。该商店名称将确定要在数据库中查找的store_id

我知道在中间件中,我可以获得商店,并且可以解决商店。但是,这是他们在控制器内执行类似操作的一种方法。...

public function getProducts(Store $store, $slug) {
    $product = Product::query()->where('store_id', $store->id)->where('slug', $slug)->firstOrFail();
}

我对Laravel并不陌生,这就是为什么我要就你们认为最好的方法征求意见。

这样做的全部原因是因为我希望能够进行store1.example.com/product-1,但是显然页面上将包含与我们从子域获得的商店相关的内容。

也许我在这里已经完全偏离了轨道,并且有更好的方法做到这一点。

让我知道!

更新:

所以我确实设法完成了这项工作...

class SubDomain {
    public function handle($request, Closure $closure, $guard = null) 
    {
        app()->bind(Store::class, function () {
            return Store::query()->where('id', 1)->firstOrFail();
        }

        return $next($request);
    }
}

还有另一种方法吗?

0 个答案:

没有答案