2017-08-24 70 views
1

我有一個laravel應用程序,其中路由「/ phones/brand/{brand_id}」返回與該品牌相關的所有電話。除brand_id 1以外的品牌,此功能完美無缺,輸出不同。Laravel:針對相同查詢的不同json輸出

/手機/品牌/ 1的結果

[{"id":1,"phone_model_id":1,"model":"Iphone 5"}, 
{"id":2,"phone_model_id":1,"model":"Iphone 5s"}, 
{"id":3,"phone_model_id":1,"model":"Iphone 6"}] 

/手機/品牌/ 2的結果

{"3":{"id":6,"phone_model_id":2,"model":"galaxyy s3"}} 

我不能用這個數據來工作,因爲它返回的空槽JavaScript的。

控制檯日誌:

Object [ <3 empty slots>, Object ] script.js:84:11 

這也是該端點控制器動作的代碼。

public function showByBrand($brand) 
{ 

return Phone::all()->where('phone_model_id', '=', $brand); 

} 
+0

你試過'電話::在哪裏( 'phone_model_id', '=',$品牌) - >獲取([ '身份證', '模型', 'phone_model_id'] ) - >的toJSON();'? –

+0

@PatrykWoziński是的,它仍然返回相同的東西。 –

回答

3

使用->all()將立即返回所有記錄。您想使用->where()方法,然後使用->get()來檢索那些過濾的記錄。

試試這個:

public function showByBrand($brand) 
{ 

return Phone::where('phone_model_id', '=', $brand)->get(); 

} 
相關問題