Обработка данных с несколькими ответами с помощью REST API - PullRequest
0 голосов
/ 06 мая 2019

У меня проблема с обработкой нескольких данных JSON.Я не получаю несколько данных, и если я использую «массив», то он также создает одну запись с нулевыми значениями в базе данных.

Код Backend для сохранения данных

{ 
       $pickup = new PickupData();

       $pickup->pickup_person = $request->pickup_person;

       $pickup->office_city = $request->office_city;

       $pickup->office_state = $request->office_state;

       $pickup->office_pincode = $request->office_pincode;

       $pickup->pickup_email = $request->pickup_email;

       $pickup->preferred_start_time = $request->preferred_start_time;

       $pickup->preferred_end_time = $request->preferred_end_time;

       $pickup->mobile = $request->mobile;

       $pickup_date = Carbon::parse($request->pickup_date)->format('d-m-Y');

       $pickup->pickup_date = $pickup_date;

       $saved = $pickup->save();
}

Мне нужен ответ каки он должен быть сохранен в базе данных

[
  {
    "pickup_person":"SanPune6",
    "city":"pune",
    "office_address":"viman nagar",
    "office_city":"Pune",
    "office_state":"MH",
    "office_pincode":"121212",
    "pickup_email":"office@gmail.com",
    "preferred_start_time":"12:38:29",
    "preferred_end_time":"13:02:33",
    "mobile":"9090909090",
    "pickup_date":"12-04-2019"
  },
  {
    "pickup_person":"SanPune6",
    "city":"pune",
    "office_address":"viman nagar",
    "office_city":"Pune",
    "office_state":"MH",
    "office_pincode":"121212",
    "pickup_email":"office@gmail.com",
    "preferred_start_time":"12:38:29",
    "preferred_end_time":"13:02:33",
    "mobile":"9090909090",
    "pickup_date":"12-04-2019"
  }
]

Ответы [ 3 ]

1 голос
/ 06 мая 2019
  1. создать ресурс как это
  php artisan make:resource PickupResourceCollection
  1. создать другой ресурс, например
  php artisan make:resource PickupResource
  1. в вашем методе индекса PickupController сделайте вот что
use use App\Http\Resources\PickupResourceCollection;
  ...
  public function index()
  {
     $pickups = Pickup::all();
     return response()->json(new PickupResourceCollection($pickups),200);
  }
 ...
  1. в PickupResourceCollection сделать что-то вроде этого
....
 public function toArray($request)
 {
     return [
         'data' => $this->collection->transform(function ($pickups) {
             return new PickupResource($pickups);
         })
     ];
 }
 ....
  1. в PickupResource сделать что-то подобное
....
 public function toArray($request)
 {
    return [
       "pickup_person"       =>$this->pickup_person,
       "city"                =>$this->city,
       "office_address"      =>$this->office_address,
       "office_city"         =>$this->office_city,
       "office_state"        =>$this->office_state,
       "office_pincode"      =>$this->office_pincode,
       "pickup_email"        =>$this->pickup_email,
       "preferred_start_time"=>$this->preferred_start_time,
       "preferred_end_time"  =>$this->preferred_end_time,
       "mobile"              =>$this->mobile,
       "pickup_date"         =>"$this->pickup_date
   ];
 }
 ....

Вот и все :) 1022 *

0 голосов
/ 07 мая 2019
$pickupDetails =          [
                             {
                                 "pickup_person":"SanPune6",
                                 "city":"pune",
                                 "office_address":"viman nagar",
                                 "office_city":"Pune",
                                 "office_state":"MH",
                                 "office_pincode":"121212",
                                 "pickup_email":"office@gmail.com",
                                 "preferred_start_time":"12:38:29",
                                 "preferred_end_time":"13:02:33",
                                 "mobile":"9090909090",
                                 "pickup_date":"12-04-2019"
                             },
                             {
                                 "pickup_person":"SanPune6",
                                 "city":"pune",
                                 "office_address":"viman nagar",
                                 "office_city":"Pune",
                                 "office_state":"MH",
                                 "office_pincode":"121212",
                                 "pickup_email":"office@gmail.com",
                                 "preferred_start_time":"12:38:29",
                                 "preferred_end_time":"13:02:33",
                                 "mobile":"9090909090",
                                 "pickup_date":"12-04-2019"
                             }
                         ];
         $pickupDetails = $request->all();     
         foreach($pickupDetails as $pickup){ 
             Pickup::create($pickup);  
         }
         return response()->json("success",200); 

, если это поможет тебе поднять голос

0 голосов
/ 06 мая 2019

Да, вы можете сохранить как массив.

$pickup = PickupData::create($request->all()) // to save all request data
$pickup = PickupData::create($request->except(['var1', 'var2'])) // to save all request data except var1 & var2

$pickup вернет только новую вставленную строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...