Laravel 如何转化为拉威尔雄辩

Laravel 如何转化为拉威尔雄辩,laravel,Laravel,我需要将此查询转换为laravel,帮助 UPDATE table_name SET usercontact_status = CASE WHEN usercontact_status = 0 THEN 2 WHEN usercontact_status = 16 THEN 64 WHEN usercontact_status = 32 THEN 128 WHEN usercontact_status = 4 THEN 256 END WHERE us

我需要将此查询转换为laravel,帮助

UPDATE table_name
 SET usercontact_status = CASE
     WHEN usercontact_status = 0 THEN 2
     WHEN usercontact_status = 16 THEN 64
     WHEN usercontact_status = 32 THEN 128
     WHEN usercontact_status = 4 THEN 256
 END WHERE usercontact_value = "456"

这是为你的问题编辑的答案

switch ($usercontact_status) {
    case 0:
        $value = 2;
        break;
    case 16:
        $value = 64;
        break;
    case 32:
        $value = 128;
        break;
    case 4:
        $value = 256;
        break;
}
您的查询将有点像这样

$query = Model::where('usercontact_value','456')->where('usercontact_status',$usercontact_status)->update([
    'usercontact_status' => $value
]);

希望这能解决您的问题

您是否创建了任何模型?你试过什么吗?看起来你在问之前没有试过什么,因为可以找到很多关于这个的资源。在提问之前,请尝试阅读和,这样你的答案更可能被回答而不是被否决。是的,我确实创建了模型,eibersji,实际上这就是我尝试的,DB::update('update'。UserContacts::getTableName().“当usercontact_status=0时设置usercontact_status=CASE,当usercontact_status=16时设置usercontact_status=2,当usercontact_status=32时设置usercontact_status=64,当usercontact_status=4时设置usercontact_status=CASE,当usercontact_status=4时设置usercontact_status=128,然后设置usercontact_value=“.”;谢谢。这就是我关注的内容,UserContacts::where('usercontact\u value',$code->usercontact\u value)->更新(['usercontact\u status'=>'当usercontact\u status=0时为2,当usercontact\u status=16时为2,当usercontact\u status=32时为64,当usercontact\u status=4时为128,然后是256 END'];这是否正确