所以我有以下查询:
$a = Model::where('code', '=', $code) ->where('col_a', '=' , 1) ->orderBy(DB::raw('FIELD(layout, "normal", "split", "flip", "double-faced", "") ASC, layout')) $b = Model::where('code', '=', $code) ->where('col_b', '=' , 1) ->orderBy(DB::raw('FIELD(layout, "normal", "split", "flip", "double-faced", "") ASC, layout')) $a->union($b)->get();
当我先“ orderBy()”然后进行联合时,没有排序发生。
当我单独查询“ $ a”或“ $ b”时,“ orderBy()”工作正常。
当我以以下方式进行操作时,“ orderBy()”会整体发生。
$a->union($b) ->orderBy(DB::raw('FIELD(layout, "normal", "split", "flip", "double-faced", "") ASC, layout')) ->get();
我怎样才能使'orderBy()'分别适用于每个对象,然后将结果合并回去?似乎应该可以。
编辑:如果有人可以提供一种执行此操作的方法,即使它是正常的MySQL,我也会选择您的答案作为答案,因为我认为Eloquent可能存在一个错误。