我有一个复杂的问题需要帮助:Logic
1.表subscriptions
具有包含user_id
的行(每个用户可以有许多行)
1.表products
需要tokens
(产品A需要示例2令牌)
1.现在这个令牌必须根据用户订阅量计算。假设用户在订阅表中有2行,一行有1
令牌,另一行有5
令牌(用户总共有6个令牌),他只需要使用其中的2
。
1.我在这里要做的是更新这个用户的订阅表,并通过递增来标记他的行used_tokens
列。
你现在可能有点困惑了!这里有一些截图,可以让你在视觉上理解它。products table
subscriptions table
问题
问题是我无法更新subscriptions
表中这两行中的used_tokens
列。
这是它最后应该是什么样子
代码
这就是我目前所做的(获得正确的产品,获得用户订阅),我需要更新这些订阅:
$product = Product::findOrFail($request->input('product_id')); // Get product
$required_tokens = $product->required_tokens; // Get product require tokens (i.e. 2)
$subscriptions = Subscription::where('user_id', $user->id)->where('isPaid', true)->where('used_tokens', '<', 'tokens')->get(); // Get user subscription rows
如何更新(增量)这些行中的used_tokens
?
2条答案
按热度按时间ef1yzkbh1#
像这样的东西怎么样?
最终(清理)代码
2g32fytz2#
你可以在Laravel中使用Laravel雄辩的关系一次更新多个模型
设置此关系后,可以使用以下代码更新用户的订阅: