私は、ユーザーが異なる選択ドロップダウンで2つの企業を選択し、それらを並べて比較することを可能にする会社比較Webアプリケーションを持っています。順序を除いてすべてが今のところうまく機能しています。私は、比較の結果が、デフォルトのLaravel created_byフィールドではなく、最初に照会されたアイテムに基づいていることを望みます。以下は、クエリビルダのために私のコードです: :最初の条件結果に基づいてLaravelクエリビルダを注文する方法
public function compareCompanies(Request $request) {
if ($request->has('companies') && $request->companies != null) {
$companies = array_filter($request->companies);
$brands = Brand::with('categories')
->whereIn('brands.slug', $companies)
->get();
return response()->json(['success' => true, 'brands' => $brands]);
}
}
以下は下の画像を示すように、私が得る結果はPOSTリクエスト
$.ajax({
type: "POST",
url : url,
data: $("#compareForm").serialize(),
dataType : 'json',
success : function(response) {
if(response.success)
{
$("div#divLoading").removeClass('show');
$.each(response.brands, function(i, brand){
var NewRow = '';
NewRow += '<table class="table"><thead><tr>';
NewRow += '<th>' + brand.brand + '</th>';
NewRow += '</tr></thead><tbody>';
NewRow += '<tr><td>'+brand.growth_score+'</td></tr>';
NewRow += '<tr><td>'+brand.mind_share +'</td></tr>';
NewRow += '<tr><td>'+brand.headquarters+'</td></tr>';
NewRow += '<tr><td>'+brand.revenue+'</td></tr>';
NewRow += '<tr><td>'+brand.no_of_employees+'</td></tr>';
NewRow += '</tbody></table></div>';
$("#companies").append(NewRow);
})
}
},
error: function (data) {
console.log('An error occurred.');
console.log(data);
}
});
の応答を表示するための私のAjaxです
ご覧のとおり、Laravelはcreated_atの値を使用して注文するため、結果は入れ替えられます。どのようにして結果を入力順に並べることができますか?