Laravel:如何将JSON对象保存到MYSQL数据库?

时间:2017-02-05 09:40:49

标签: php mysql api laravel-5

我想使用Laravel API将数据从Frontend发布到后端的MYSQL数据库。我尝试了以下代码,但在尝试发布时输出500: Internal Server Error

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)吗?怎么样?

当我 error_log($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}}

2 个答案:

答案 0 :(得分: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

然后您可以基于它创建模型。

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

答案 1 :(得分:1)

可能是解决方案:

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