【问题标题】:Add more values to stdClass Object向 stdClass 对象添加更多值
【发布时间】:2022-01-10 13:42:40
【问题描述】:

我有两个结果集 $result1$result2 返回以下结果。 $result1 包含 1 条记录,$result2 有 2 条记录。如何在没有硬编码索引的情况下将 $result2 附加到 index[1] 处的 $result1 中? $result1 可能有很多记录,所以我只想在最后追加。

Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 10
                    [organisation] => Tyre Manufacturer
                    [creaedtme] => 2022-01-06 02:55:15
                )

        )

)
Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 7
                    [organisation] => A2Z PEST CONTROL
                    [firstprefix] => Ms
                    [creaedtme] => 2022-01-07 07:40:23
                )

            [1] => stdClass Object
                (
                    [id] => 11
                    [organisation] => Spare Parts
            [creaedtme] => 2022-01-06 03:00:06
                )


        )

)

以下是我尝试过的源代码,但它不起作用

$own_leads = DB::table('leaddata')->where('createdy', $user_id)->orderBy('id','DESC')->get();
// Initialize employee leads
$employee_leads = (object)[];

// If logged in user is State Level Admin then get all leads of that state
if ($user_role == 'State Level Admin') {
    $employee_leads = DB::table('users')
        ->join('leaddata', 'users.id', '=', 'leaddata.createdy')
        ->whereIn('users.stateid', $user_state)
        ->get();
}
echo $count = $own_leads->count();
$merged = $own_leads->concat($employee_leads);
$merged->all();
echo "<pre>";
print_r($own_leads);
echo "</pre>";

【问题讨论】:

  • @aynber 合并方法没有将第二个结果集合并到第一个结果集。你能就此提出建议吗?
  • 你是如何使用它的?如果您执行$merged = $result1-&gt;merge($result2),则 $merged 应该包含所有 3 条记录。 $result1 和 $result2 保持不变。
  • @aynber 我忽略了你的回复。但这对我有用。您能否将您的答案更新为以下解决方案,我会接受它

标签: php laravel object merge stdclass


【解决方案1】:

mergeconcat 都返回一个新集合,而不覆盖旧集合。通过做

$merged = $result1->merge($result2);

或者对于您添加的代码,

$merged = $own_leads->concat($employee_leads);

$merged 将包含新集合,而原来的两个集合保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多