[英]Laravel mass change Eloquent
我有users
, promocodes
和users_promocodes
表。 型號: User
, Promocode
和UserPromocode
。
他們的鑰匙users_promocodes
表: user_id
- > users.id
, promocode_id
- > promocodes.id
當我從基本刪除促銷代碼時,我需要拿走促銷代碼獎勵。 我如何通過雄辯的users.bonus
( users.bonus - 5
)值來為具有users_promocodes.id = 10
用戶設置值?
我將使用模型觀察器來跟蹤此類更改。
刪除PromoCodes后,您可以在users
表上查詢並根據需要進行更新:
<?php
namespace App\Observers;
class PromoCodeObserver
{
/**
* Listen to the PromoCode Deleting event.
*
* @param PromoCode $promoCode
* @return void
*/
public function deleting(PromoCode $promoCode)
{
// search for all users associated with the promo code
// update the bonus and save changes
$promoCode->users->each(function (User $user) {
$user->update(['bonus' => $user->bonus - 5]);
});
}
}
// User.php
public function promocode()
{
return $this->belongsTo(PromoCode::class);
}
// PromoCode.php
public function users()
{
return $this->hasMany(User::class);
}
假設一個用戶只能有一個PromoCode,則需要上述一對多關系,如果是這樣,只需在users
上添加一個promo_code_id
字段即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.