如何从POST接收JSON?

时间:2019-06-05 21:06:36

标签: laravel

我通过REST Api从Vue.JS客户端接收JSON,我想使用Eloquent获取数据,但是它不起作用。这不是刀片,也不是标准的表单提交数据,我从客户端单页应用程序接收到JSON Api。

这是JSON,用于通过方法POST从客户端路由“ / order”:

    {
        "name": "John",
        "phone": "+7 794 910 5708",
        "email": "example@gmail.com"
    }

路线为:

Route::post('/order','OrderController@order');

在控制器中,我尝试这样做:

    <?php

    namespace App\Http\Controllers;

    use Request;
    use App\Data;

    class OrderController extends Controller
    {
        public function order()
        {
            $input = Request::all();
            $data = new Data;
            $data->name = $input['name'];
            $data->phone = $input['phone'];
            $data->save();
            return response()->json(['result' => '200 OK'], 200);
        }
    }

但是什么也没发生。从REST Api接收数据的正确语法是什么?

1 个答案:

答案 0 :(得分:0)

进行如下更改:

在控制器中:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Data;

class OrderController extends Controller
{
    public function order(Request $request)
    {
        $post = $request->all();

        $data = Data::create($post);

        if($data){
            return response()->json(['success' => true, 'message' => 'Data has been inserted!']);
        } else {
            return response()->json(['success' => false, 'message' => 'Data not inserted, Something went wrong!']);        
        }
    }
}