2017-02-05 10 views
0

Laravel APIを使用してバックエンドのFrontendからMYSQLデータベースにデータを送信したいとします。私は次のコードを試しましたが、投稿しようとしている間に500: Internal Server Errorを出力します。Laravel:JSONオブジェクトをMYSQLデータベースに保存するにはどうすればよいですか?

public function postOrder(Request $request) 
{ 
    /* 
    $request is a JSON Object which looks like 
    {"order":{"table_id":2,"food_id":4,"status":1}} 
    */ 

    $order = new Order(); 
    $order->table_id = $request->order->table_id; 
    $order->food_id = $request->food_id; 
    $order->user_id = $request->user_id; 
    $order->status = $request->status; 
    $order->save(); 

    return response()->json(['message' => 'Order Added'], 201); 
} 

すべきであるか?json_decode($request)?どうやって?

解決策になる可能性が
Accept:   */* 
Accept-Encoding: gzip, deflate, br 
Accept-Language: en-US,en;q=0.8 
Connection:  keep-alive 
Content-Length: 60 
Content-Type: application/json 
Host:   localhost:8000 
Origin:   http://localhost:8100 
Referer:   http://localhost:8100/ 
User-Agent:  Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML 
, like Gecko) Chrome/55.0.2883.87 Safari/537.36 
X-Xsrf-Token: eyJpdiI6IlJpNVV1ejhZTDVaSnVcL09lVkFIZER3PT0iLCJ2YWx1ZSI6IjNFK0 
NnSXFsczd1eGJBRjZiZFc3U3lBUE9jR1lNZ0hSN0ZWNVpyWHlyWGE1TVZvZW9vK1F0eExXVjdkQzdPS 
nBISEM3UXBINGQxZ09jTCttQ0huYmlnPT0iLCJtYWMiOiJmZWNiMTY1NTJjNjYyNDZjM2Q3YTE2N2Jl 
NWNmYjgwYmNiMTlkNThjYWQ2NjEyYjk3YzQ4ZTVkYjQwMzFjY2VlIn0= 

{"order":{"table_id":2,"food_id":4,"time":"333","status":1}} 
+0

の可能性のある重複した[Laravel:?データベースにJSON形式のデータを格納する方法](http://stackoverflow.com/questions/37803214/laravel-how-to-store-json-format-data-in -database) – manniL

+0

質問には、この問題の適切な解決策がありません。 – anonym

+0

ああ、そうです。あなたは正しいです、私は申し訳ありません!私に助けてください – manniL

答えて

1

json_decode($request, true)['order']['table_id'] 
2

あなたが連想配列を取得するためにjson_decode()を使用する必要があります。

$json = '{"order":{"table_id":2,"food_id":4,"time":"333","status":1}}'; 

$array = json_decode($json, true); 

var_dump($array['order']); //Here you can see that it is an associative array with the needed values now 
I error_log($request)が、ここで私は何を得るのです

次に、それに基づいてモデルを作成します。

$order = Order::create($array['order']); 
+0

@anonym助けてくれましたか? – manniL

関連する問題