Итак, основываясь на ваших вопросах. Будет работать следующий json. Внутри json будет массив порядка, который будет иметь несколько порядков, как показано ниже:
{
"user_id": 1
"orders": [
{"product_name": "Whatever1 is selected", "quantity": 1},
{"product_name": "Whatever2 is selected", "quantity": 2},
{"product_name": "Whatever3 is selected", "quantity": 3},
],
}
Тогда на стороне сервера:
public function store(Request $request)
{
// after validating this you can use foreach to parse the the json
foreach($request->orders as order)
{
//suposse you have orders table which has user id
Order::create([
"product_name" => $order['product_name'],
"quantity" => $order['quantity'],
"user_id" => $request->user_id // since this is just json object not an jsonarray
]);
}
}
если вы используете Laravel Passport, вам не нужно указывать user_id в json.в этом случае ваш json будет выглядеть так:
{
"orders": [
{"product_name": "Whatever1 is selected", "quantity": 1},
{"product_name": "Whatever2 is selected", "quantity": 2},
{"product_name": "Whatever3 is selected", "quantity": 3},
],
}
Тогда на стороне сервера у вас в контроллере:
public function store(Request $request)
{
// after validating this you can use foreach to parse the the json
foreach($request->orders as order)
{
//suposse you have orders table which has user id
Order::create([
"product_name" => $order['product_name'],
"quantity" => $order['quantity'],
"user_id" => Auth::id() // since you are using passport
]);
}
}
Маршрут внутри файла api.php:
Route::post('user/order','OrderController@store');
// if using Laravel Passport
Route::post('user/order','OrderController@store')->middleware('auth:api');
Это способ хранения нескольких заказов одного и того же пользователя в json с использованием паспорта и без паспортного пакета.
Примечание: вы можете изменять имена ключей json в соответствии с вашим дизайном.просто пример, чтобы показать вам, как вы можете его использовать.