2017-12-17 23 views
0

laravelコントローラは取得APIの郵便配達での応答はなく

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は、ポストマン

[ 
    { 
     "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 

イオンのAppでエラーを取得するものですしかし、getBrands関数で$ request-> productを 'RO'に変更すると以下のようになります

public function getbrands(Request $request) 
{ 
    $id = DB::table('products')->where('product', '=','RO')->first()->id; 
    $brands = Product::find($id)->brands; 
     return response()->json($brands); 

} 

私はイオンアプリでデータを取得しています。

+0

あなたが間違っている場所を見てください。あなたが提供したデータから、マジシャンだけが何が起こっているのかを正確に推測します。 – Kyslik

+0

ええ、HTTP 500エラー、内部サーバーエラーが発生しているので、サーバーログを確認してください。それはあなたに最高の手がかりを与えるでしょう。すべて最高です – Ramonster

答えて

0

まずリクエストヘッダが含まれていることを確認した場合、IAM間違っハロープラザ:

Content-Type:Application/json

Accept: application/jsonは "非オブジェクトの\のプロパティを取得しようとすると"、\ "STATUS_CODEの\":このエラーが原因$request->productで起こっている、productパラメータはlaravel Sしたがって、要求オブジェクト内に設けられていない、その500

quawks。だから、あなたがproductのurlパラメータを提供するapiに向けてリクエストを行うときは必ず確認してください!

あなたのメソッドにこのコードを追加すると、私は確信しています。

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); 

} 
+0

ありがとうございます私は同じエラーメッセージのメッセージ '=>'要求で提供されていない製品 ' – Vinod

-2

要求データが正しく存在するかどうかにかかわらず、結果がどのように使用されているかに問題があります。

この場合、空の結果を返すクエリnullが実行されています。これらを確認する必要があります。無効なproductがリクエストと共に送信された場合、これらの結果を使用する前にこれらのクエリの結果が実際に何かを返すかどうかをチェックしていないので、エラーが発生します。

// could return a null 
DB::table('products')->where('product', '=',$request->product)->first(); 

// also could return a null 
Product::find($id); 
関連する問題