【问题标题】:Merge 2 collections, laravel合并 2 个集合,laravel
【发布时间】:2017-07-21 00:05:29
【问题描述】:

我有 2 个集合,我想将它们合并为 1 个集合:

$campagnes3 = Leads1_Voorverzameld::select(array('leads1_voorverzameld.*', \DB::raw('COUNT(leads1_voorverzameld.Campagne_Id) as Avleads')))
    ->leftJoin('campagnes', 'campagnes.Campagne_Id', '=', 'leads1_voorverzameld.Campagne_Id')
    ->where('leads1_voorverzameld.Aanvullende_Gegevens', '=', '1')
    ->groupBy('leads1_voorverzameld.Campagne_Id', \DB::raw("YEAR(leads1_voorverzameld.Voorverzameld_Datum)"), \DB::raw("MONTH(leads1_voorverzameld.Voorverzameld_Datum)"))
    ->orderBy(\DB::raw("YEAR(leads1_voorverzameld.Voorverzameld_Datum)"))
    ->get();

    $campagnes4 = Leads1_Voorverzameld::select(array('leads1_voorverzameld.*', \DB::raw('COUNT(leads1_voorverzameld.Campagne_Id) as leads')))
    ->leftJoin('campagnes', 'campagnes.Campagne_Id', '=', 'leads1_voorverzameld.Campagne_Id')
    ->groupBy('leads1_voorverzameld.Campagne_Id', \DB::raw("YEAR(leads1_voorverzameld.Voorverzameld_Datum)"), \DB::raw("MONTH(leads1_voorverzameld.Voorverzameld_Datum)"))
    ->orderBy(\DB::raw("YEAR(leads1_voorverzameld.Voorverzameld_Datum)"))
    ->get();

$av = $campagnes3->toBase()->merge($campagnes4);

发送 $av 到我的视图

现在输出:

给我有 2 条 voorverzamelde 线索,然后在下一行有 1 条带 AV,然后 voorverzamelde 线索列是空的。

输出应该是有 2 条 voorverzamelde 线索,其中 1 条包含 AV 所以他们应该被联系起来。有什么帮助吗?

【问题讨论】:

  • 你为什么不在你的原始 sql 中做一个联合?

标签: php laravel join merge


【解决方案1】:
$av = $campagnes3->combine($campagnes4);

你可以使用 Laravel 集合中的 combine 方法。

如果它们具有相同的属性,它会将您的两个集合合并为一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2018-09-22
    • 2017-10-05
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多