更改stdClass属性类型


Change stdClass property type

我要分配一个User模型(对象)到我的stdClass属性之一,这是我的stdClass通过DB获取的查询结果:

{#803 ▼
+"user": 84
+"id_list": "7,1"
+"total": "125002.00"
+"settlement_id": null
+"bank_code": null
+"gateway_id": null
+"settlement_date": null
}

如果我尝试将User模型分配给user属性一个异常抛出:

类App'User的对象无法转换为int

这是我尝试将用户模型分配给stdclass的方式

// $settlements is an array containing stdClasses
// $user_list is an array containing User models
foreach($settlements as $settlement){
        foreach($user_list as $user){
            if($settlement->user == $user->id){
                $settlement->user = $user;
            }
        }
    }

最有可能的$settlement->user是一个对象,PHP试图转换为整数,同时比较它的行,说:

if($settlement->user == $user->id){

在执行比较之前,您需要确保它不是一个已经分配的对象,例如:

if (!is_object($settlement->user) && $settlement->user == $user->id)

if (!$settlement->user instanceof User && $settlement->user == $user->id)

(假设$userUser类的实例;将其更改为实际值)

明白了,去掉下面一行:

 if ($user > 0) {
                return response()->json('Success');
    }