【问题标题】:Laravel merge 2 collection with paginatorLaravel 与分页器合并 2 集合
【发布时间】:2014-07-07 03:46:33
【问题描述】:

我需要对两个不同的集合进行分页。有优先上市。放在优先级列表中的钱。

你为什么不做一个单一的查询,你可以说优先级列表。原因,使用过滤时;我选择的城市,县,类别。但是,网站所有者在城市、县或什至在您想要的类别中列出的优先区域之一中具有优先列表。

所以在一个查询关键字中使用 3 个条件时,其他条件在第一个就足够了。每页列出20条记录,如果第一条列出30条第一条记录,第二条记录在其他我想在后面列出。

根据通常与您在一起的标准,现在我分享我的代码。等待您的建议。先感谢您。

对不起,我的英语不好。

DB::table('UserAds')
        ->join('Ads', 'Ads.id', '=', 'UserAds.ad_id')
        ->join('Users', 'Users.id', '=', 'UserAds.user_id')
        ->join('AdCategory', 'AdCategory.ad_id', '=', 'Ads.id')
        ->join('AdEducationPrices', 'AdEducationPrices.ad_id', '=', 'Ads.id')
        ->join('City', 'City.id', '=', 'Ads.city_id')
        ->join('Town', 'Town.id', '=', 'Ads.town_id')
        ->leftJoin('AdMedias', 'AdMedias.ad_id', '=', 'Ads.id')
        ->select('Ads.*', 'AdEducationPrices.*', 'City.name as city_name', 'City.id as city_id',
                                    'Town.name as town_name', 'Town.id as town_id', 'AdMedias.url')
        ->where('Ads.is_publish', 1)
        ->whereIn('AdCategory.category_id', $new_category_array)
        ->where('Ads.city_id', $city_id)
        ->where('Ads.town_id', $town_id)
        ->where('UserAds.is_purchased', true)
        ->where('UserAds.started_at', '<', date('Y-m-d H:i:s'))
        ->where('UserAds.finished_at', '>=', date('Y-m-d H:i:s'))
        ->where('AdMedias.type', 'picture')
        ->groupby('UserAds.ad_id')->orderby('finished_at', 'DESC')
        ->orderby('started_at', 'DESC')->paginate(20);

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我使用array_merge 进行了 2 个查询。并为分页器过滤记录。 Ty阅读我的问题。我希望对某人有所帮助

    $new_collection = array_merge($Priority, $Ads);
    $new_collection_count = count($new_collection);
    
    $perPage = 20;
    $currentPage = Input::get('page', 1) - 1;
    $new_collection = array_slice($new_collection, $currentPage * $perPage, $perPage);
    $Ads = Paginator::make($new_collection, $new_collection_count, $perPage);
    

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 1970-01-01
      • 2017-07-21
      • 2018-05-10
      • 2019-04-14
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2015-12-16
      相关资源
      最近更新 更多