Laravel の Eloquent ORM の orderBy メソッドはクロージャー関數(shù)の代替をサポートしていないため、コードは正しくありません。代わりに、列名とソート方向 (昇順または降順) を引數(shù)として期待します。このシナリオでは、少し複雑な計算値に基づいて製品を並べ替えようとしていますが、これは orderBy を使用して直接達(dá)成することはできません。
採用できる戦略の 1 つは、このフィールドを事前に計算して製品テーブルに保存し、このフィールドで並べ替えることです。あるいは、最初に製品を取得してからメモリ內(nèi)で並べ替えることもできます。
メモリ內(nèi)でこれを行う方法は次のとおりです:
このコードは、最初にすべての製品とその関連パッケージを取得します。次に、指定した計算に基づいてコレクションがメモリ內(nèi)で並べ替えられます。