如何从请求Laravel获取JSON?

时间:2019-03-01 20:20:39

标签: laravel laravel-5

我使用这种方法:

X

我的要求是:

import numpy as np
from matplotlib import pyplot as plt
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C

def f(x):
    """The function to predict."""
    return 1.5*(1. - np.tanh(100.*(x-0.96))) + 1.5*x*(x-0.95) + 0.4 + 1.5*(1.-x)* np.random.random(x.shape)

# Instantiate a Gaussian Process model
kernel = C(10.0, (1e-5, 1e5)) * RBF(10.0, (1e-5, 1e5))

X = np.array([0.803,0.827,0.861,0.875,0.892,0.905,
                0.91,0.92,0.925,0.935,0.941,0.947,0.96,
                0.974,0.985,0.995,1.0])
X = np.atleast_2d(X).T

# Observations and noise
y = f(X).ravel() 
noise = np.linspace(0.4,0.3,len(X))
y += noise

# Instantiate a Gaussian Process model
gp = GaussianProcessRegressor(kernel=kernel, alpha=noise ** 2,
                              n_restarts_optimizer=10)
# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)

# Make the prediction on the meshed x-axis (ask for MSE as well)
x = np.atleast_2d(np.linspace(0.8, 1.02, 1000)).T
y_pred, sigma = gp.predict(x, return_std=True)

plt.figure() 
plt.errorbar(X.ravel(), y, noise, fmt='k.', markersize=10, label=u'Observations')
plt.plot(x, y_pred, 'k-', label=u'Prediction')
plt.fill(np.concatenate([x, x[::-1]]),
         np.concatenate([y_pred - 1.9600 * sigma,
                        (y_pred + 1.9600 * sigma)[::-1]]),
         alpha=.1, fc='k', ec='None', label='95% confidence interval')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0.8, 1.02)
plt.ylim(0, 5)
plt.legend(loc='lower left')
plt.show()

标题:

public function store(CreateEvent $request)
{
    dd($request->json()->all());

}

作为响应,我在Chrome网络中显示空白页面,没有响应数据。

我尝试过:

{"name":"etegjgjghjghj","date":"2019-03-08"}

3 个答案:

答案 0 :(得分:1)

尝试一下:

public function store(CreateEvent $request)
{
    return response()->json($request->all());
}

答案 1 :(得分:1)

如果请求的标题为“ Content-Type:application / json”,并且是有效的JSON,则laravel会自动将其转换。您不需要做任何额外的工作。
但是您必须确保JSON是正确的。因为JSON必须包含双引号而不是单引号的字符串(如果有)
接下来,您的表单验证可能会触发422请求,默认情况下,该请求会重定向回上一页。您可以在表单请求类

中尝试extglob

答案 2 :(得分:0)

Laravel可能无法将输入值转换为CreateEvent对象,我在Laravel中没有看到CreateEvent类的任何迹象。因此,请尝试Request类:

<?php

public function store(Request $request)
{
    dd($request->json()->all());

}

这种方式,请求数据应该在那里。

编辑 ----

或者更好的方法是,使用全局函数request()代替在您的案例$request中可能无法成功创建的dd(request()->json()->all());

要访问这些值,您可以使用:

<?php

public function store(Request $request)
{
    $data = request()->json()->all();
    // show type input
    dd($data['type']);
}