你可以這樣做。
public function index(Request $request)
{
// Handles requests such as ".../api/products?user_id=5&price=500"
$products = Product::where('user_id', $request->user_id)->where('price', '<=', intval($request->price))->get();
return response()->json($products);
}
或者:@Joel欣茨評論後
public function index(Request $request)
{
// Handles requests such as ".../api/products?user_id=5&price=500"
$products = Product::whereRaw("user_id=? and price<=?", [$request->user_id, $request->price])->get();
return response()->json($products);
}
編輯:
如果您還想傳遞查詢的操作符,你可以添加一個新的參數到網址,例如
/api/products?user_id=5&price=500&op=1
然後切換控制器中的號碼。
public function index(Request $request)
{
// Handles requests such as ".../api/products?user_id=5&price=500&op=1"
switch(intval($request->op)){
case 1:
$op = "<=";
break;
case 2:
$op = ">";
break;
//and so on
default:
return response()->json("Wrong parameters");
break;
}
$products = Product::whereRaw("user_id = ? and price $op ?", [$request->user_id, $request->price])->get();
return response()->json($products);
}
我想OP也想從查詢字符串中獲取運算符。 –
是的,也許你是對的 –
嗯是的,事情是,我當然可以做到這一點,並有額外的參數,如'maxprice'和'minprice'等。但是,應該有一個更好的解決方案,對吧?我的意思是,這就是你一直在做的事 - 請求資源並設置不同的參數。似乎有很多工作需要隨時爲max和min定製參數。 $ request-> toArray()的美妙之處在於我甚至不需要指定參數。 – Myone