我正在使用WebServices。我的要求是从服务器接收JSON数据并存储在DB [订单表]中。customers用于在移动设备中放置mutliple订单。必须在Laravel Controller中收到同样的订单并存储在订单表中。我不应仅通过使用表格。控制器我应该接收数据。我是这个Web服务和JSON概念的新手。
public function receive(Request $request)
{
$data = $request->json()->all();
$order = new order();
$order->product_int = $request->input('products');
$order->quantity_float = $request->input('quantity');
$order->amount_float = $request->input('amount');
$order->save();
}
在api.php中,我正在调用 Route::get('/receive', 'OrderController@receive');
上面的代码不起作用。有关如何接收json数据作为函数参数以及如何保存到db。
您应该通过使用Intput ::所有方法在Laravel中收到一个关联数组,
public function receive(Request $request)
{
$data = Input::all(); //$data = $request->json()->all(); should also work
$order = new order();
$order->product_int = $data['products'];
$order->quantity_float = $data['quantity'];
$order->amount_float = $data['amount'];
$order->save();
}
大概,您可能需要更改您的路线而不是获取,
Route::post('/receive', 'OrderController@receive');
如果您不想提交表格,则可以使用卷发将数据发布到您的API,
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"YOUR-API-URL-HERE");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('products' => $value, 'quantity' => $quantity, 'amount' => $amount)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
curl_close ($ch);