繁体   English   中英

Laravel质量变化雄辩

[英]Laravel mass change Eloquent

我有userspromocodesusers_promocodes表。 型号: UserPromocodeUserPromocode

他们的钥匙users_promocodes表: user_id - > users.idpromocode_id - > promocodes.id

当我从基本删除促销代码时,我需要拿走促销代码奖励。 我如何通过雄辩的users.bonususers.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM