这更多是关于如何按照最佳做法做某事的问题。
我有一个网站,它将托管多个“商店”。所有存储都将从一个子域运行,例如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);
}
}
还有另一种方法吗?