我是新的Laravel,并建立了一个小型Laravel5.3应用程序,提供免费的内容文件以及文件的购买。
我希望用户能够自动访问免费文件(内容可以定期添加)。
我有一个产品,采购(枢轴)和用户表。
当用户登录时,我如何像下面这样查询products表:选择所有免费产品(price=0)或参加users.user_id = purchases.user_id和products.id = purchases.product_id的采购?
有什么想法吗?还是有更好的方法来完成同样的事情?
谢谢
发布于 2016-12-25 04:59:49
如果您使用以下查询,情况如何:
$purchasedProducts = DB::table('purchases')
->join('products', 'products.id', '=', 'purchases.product_id')
->select('purchases.*', 'products.*')
->where([
['purchases.user_id', '=', $loggedinUserId],
['products.price', '=', 0],
])
->get();发布于 2016-12-25 06:00:57
如果您已经定义了user和product之间的关系,那么可以使用orWhereHas查询它,如下所示:
Product::where('price', 0)
->orWhereHas('users', function ($q) user($user) {
$q->where('user_id', $user->id);
})
->get();假设您的关系名是users__。
https://stackoverflow.com/questions/41318596
复制相似问题