我的应用程序是在Laravel 5.6中制作的
情况:
我有一个名为“members”的表,其中有一列名为“membershipstatus_id”。
状态选项有4、5和1
4=活动,5=挂起,1=过期
目标:
我要将所有活动(4)成员更新为挂起(5),并将所有挂起成员更新为过期(1)。
我尝试过的解决方案:
到目前为止,以下是我所做的没有结果的尝试。
// get all active and pending members
$members = Member::where('membershipstatus_id', 5)
->orWhere('membershipstatus_id', 4)
->get();
// bulk update with chunk of 200, if this is possible
$members->chunk(200, function($members)
{
foreach($members as $member)
{
// if status is pending, update to expire
if($member->membershipstatus_id == 5)
{
$member->update(['membershipstatus_id' => 1]);
}
// if status is active, update to pending, i updated a small mistake here.
if($member->membershipstatus_id == 5)
{
$member->update(['membershipstatus_id' => 4]);
}
}
}
);
return "update confirm";
现在,如果有人有一个更干净和迅速的方式来做这件事,请让我知道,而且,我肯定我犯了一些愚蠢的错误。请告诉我正确的方向。
阿施施