laravel控制器
public function getbrands(Request $request)
{
$id = DB::table('products')->where('product', '=',$request->product)->first()->id;
$brands = Product::find($id)->brands;
return response()->json($brands);
}
这就是IAM进入Postman
[
{
"id": 2,
"brand": "Bluemount",
"pivot": {
"product_id": 2,
"brand_id": 2
}
},
{
"id": 3,
"brand": "LG",
"pivot": {
"product_id": 2,
"brand_id": 3
}
}
]
,但是IAM在离子应用中遇到错误
{…}
_body: "{"message":"Trying to get property of non-object","status_code":500}"
headers: Object { _headers: Map, _normalizedNames: Map }
ok: false
status: 500
statusText: "Internal Server Error"
type: 2
url: "http://127.0.0.1:8000/api/getbrands"
__proto__: Object { constructor: Response(), toString: Response.prototype.toString() }
call.ts:143:10
Dismissed toast
但是,当我将$ request->产品更改为getBrands功能的'ro'
public function getbrands(Request $request)
{
$id = DB::table('products')->where('product', '=','RO')->first()->id;
$brands = Product::find($id)->brands;
return response()->json($brands);
}
然后我在离子应用程序中获取数据。plz你好,iam错误
首先确保您的请求标头包含:
Content-Type:Application/json
和Accept: application/json
"试图获取非对象的属性"," status_code ":500
由于 $request->product
, product
参数正在发生在请求对象中,因此发生了此错误。因此,请确保当您向API提出请求时,请提供product
URL参数!
我很确定,如果您将此代码添加到方法中,您将获得响应:不提供请求中的产品!
public function getbrands(Request $request)
{
if(!request()->has('product'))
{
return response(['message'=>'Product not provided in request'], 402);
}
$id = DB::table('products')->where('product', '=','RO')->first()->id;
$brands = Product::find($id)->brands;
return response()->json($brands);
}
是否请求数据是否正确到达那里,似乎不是,您在此处使用结果有问题。
在这种情况下,您正在运行可以返回空结果null
的查询。您将需要检查这些。如果随请求发送无效的product
,您最终会出现错误,因为您没有检查这些查询的结果是否在尝试使用这些结果之前返回任何内容。
// could return a null
DB::table('products')->where('product', '=',$request->product)->first();
// also could return a null
Product::find($id);