【问题标题】:Ordering by related to table in Laravel在 Laravel 中按相关表排序
【发布时间】:2015-04-07 18:26:22
【问题描述】:

我有一个与其他 2 个模型(汽车和自行车)相关的模型(车辆)。汽车和自行车一样属于车辆。一辆车有一辆汽车或一辆自行车。

我想对我所有的车辆进行随机排序,首先是自行车,然后是汽车。我的意思是首先随机订购所有汽车,然后随机订购所有自行车。

我必须以分页方式执行此操作,因此必须在单个查询中完成。

我所做的近似如下:按 car_id 排序(然后自行车先来)但顺序始终相同,我需要在每个组内添加随机因子。

任何提示都会有所帮助。谢谢!

【问题讨论】:

    标签: php laravel laravel-4 eloquent


    【解决方案1】:

    Union 应该可以工作:

    $cars = Vehicle::selectRaw('*, 1 as ob')->whereNotNull('car_id');
    $bikes = Vehicle::selectRaw('*, 2 as ob')->whereNotNull('bike_id');
    
    $vehicles = $cars->union($bikes)->orderByRaw('ob, RAND()')->paginate(10);
    

    阅读更多关于order when using union的信息。

    【讨论】:

      猜你喜欢
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      • 2019-05-14
      • 2018-06-06
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      相关资源
      最近更新 更多