我有一个laravel应用程序,其中路线" / phones / brand / {brand_id}"返回与该品牌相关的所有手机。除了brand_id 1之外的其他品牌,输出效果不同。
/ phones / brand / 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"}]
/ phones / brand / 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 :(得分:3)
使用->all()
将立即返回所有记录。您希望使用->where()
方法后跟->get()
,然后检索这些已过滤的记录。
试试这个:
public function showByBrand($brand)
{
return Phone::where('phone_model_id', '=', $brand)->get();
}