3 database laravel eloquent laravel-5
我正在使用 API Body 发送对象 现在我需要从该对象获取一个属性,并且我还需要修改对象中的该属性,如何执行此操作。
\n这是我的 Laravel 控制器功能
\n public function advanceOrder(Request $request)\n {\n try{\n $result = $request->getContent();\n DB::table('advance_orders')->insert(['data'=> $result]);\n }catch(Exception $e)\n {\n DB::table('advance_orders')->insert(['data'=> $e->getMessage()]);\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n这是我从 api 获取的对象\n我想从对象获取 payment_datetime 属性,并且还想修改该对象中的属性
\n{"paymethod_id":1,"business_id":76,"delivery_type":1,"driver_tip":0,"delivery_zone_id":6569,"delivery_datetime":"2020-12-09 00:23:00","location":{"lat":18.7675049,"lng":-103.1445221},"deliveryOptionmodal":{"id":2,"value":"Esperar en la entrada","$$hashKey":"object:701"},"delivery_cost_new":20,"products":"[{\\"id\\":48732,\\"code\\":\\"NLNyEp\\",\\"quantity\\":1,\\"options\\":[],\\"ingredients\\":[]}]","customer_id":129731,"customer":"{\\"id\\":129731,\\"name\\":\\"bil\\",\\"middle_name\\":null,\\"lastname\\":\\"ar\\",\\"second_lastname\\":null,\\"photo\\":null,\\"email\\":\\"bilal1212@gmail.com\\",\\"cellphone\\":\\"0213123132131\\",\\"address\\":\\"Coalcom\xc3\xa1n, Michoac\xc3\xa1n, Mexico\\",\\"location\\":\\"{\\\\\\"lat\\\\\\":18.7675049,\\\\\\"lng\\\\\\":-103.1445221}\\",\\"internal_number\\":null,\\"address_notes\\":\\"sss\\",\\"zipcode\\":null,\\"map_data\\":{\\"library\\":\\"google\\",\\"place_id\\":\\"ChIJz6WGrUw-MIQR_jYIoFZ-RPM\\"},\\"tag\\":\\"home\\"}"}\nRun Code Online (Sandbox Code Playgroud)\n
小智 6
您需要首先反序列化您的对象,因为该getContent()方法返回一个字符串。就用json_decode()方法吧。
$result = json_decode($request->getContent(), true);
Run Code Online (Sandbox Code Playgroud)
从现在开始,您可以使用 JSON 对象中的数据作为数组字段。
dd($result['delivery_datetime']);
Run Code Online (Sandbox Code Playgroud)
如果需要持久保存 JSON 对象,您还可以修改数据并再次序列化。
$result = json_decode($request->getContent(), true);
$result['driver_tip'] = 50;
$modifiedResult = json_encode($result);
dd($modifiedResult);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4953 次 |
| 最近记录: |