私はlaravelで雄弁なクエリをピボットテーブルの列でソートしようとしています。Laravelピボットテーブルの列で並べ替え
は、基本的に限り、製品がユーザによりお気に入りに追加されるように、ピボットテーブルに追加され、それは最初のお気に入りに追加したものを示し、そして残りのものべきです。私はブレードでforeachを使用しているので。
製品の表は、これらの列が含まれています
id, category, product_name, priority, status, created_at, updated_at
ユーザーの表は、これらの列が含まれています
id, name, email, created_at, updated_at
ユーザーモデルで、次で:
public function favorites()
{
return $this->belongsToMany(Products::class, 'favorites', 'user_id', 'product_id')
->withTimeStamps();
}
お気に入りの表は、これらの列が含まれています:
コントローラでid, user_id, product_id, created_at, updated_at
、雄弁なクエリは現在、次のとおりです。
$productinprogress = Products::all()
->sortByDesc("priority")
->where('status', 'inprogress');
私はこれに対処する方法としてだけで混乱しています。
あなたのお手伝いがありがとうございます。どうもありがとうございます。私はあなたが2つのクエリを作るべきだと思い
$productinprogress = Products::all()
->where('status', 'inprogress')
->sortByDesc("priority");
を、あなたは、あまりにも熱心ロードとロードのお気に入りを使用して効率的なソリューションが必要な場合は、使用コードに
$productinprogress = Products::all()
->with('favorites')
->where('status', 'inprogress')
->sortByDesc("priority");
BadMethodCallException 方法。 – RSK
データベース内に優先順位フィールドが表示されません。そこにある他のフィールドに優先順位を変更しようとしますか? –
これは実際に使用可能です。したがって、優先フィールドが利用可能です。 – RSK