簡體   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