【问题标题】:Laravel JSON reading from POST从 POST 读取 Laravel JSON
【发布时间】:2014-01-11 13:33:41
【问题描述】:

假设我在 Laravel 4.1 中有一条资源充足的路线,如下所示:

Route::group(['prefix' => 'api',], function()
{
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Headers: Content-Type');
    Route::resource('user','UserController');
});

我有控制器方法 store() 如下:

    public function store()
    {
        $user = new User;
        $name = Input::get('name');
        $user->login_name = implode('.', explode(' ', strtolower($name)));
        $user->name = $name;
        $user->email = Input::get('email');
        $user->password = Hash::make('1');
//      $user->save();
        return Response::json([
                'error' => false,
                'user' => $user->toArray()
                ], 200);

    }

我正在从骨干网或仅从 rest api 测试工具发出发布请求:请求如下:

{"phone":"123123123","description":"","name":"test","email":"test@test.com"}

问题是当我查看响应时,我发现请求是空的:

{"error":false,"user":{"login_name":"","name":null,"email":null}}

可能是什么问题?

【问题讨论】:

  • $user->save() 是否正确保存到数据库?
  • 否,给出字段“name”为空的错误
  • 您使用的是什么 HTTP 方法?获取、发布、放置?
  • POST 当然,如果我阅读 php://input 则有 2 个 json 字符串(相同)
  • 在 store() 方法中尝试 dd($name) 会得到什么

标签: php json backbone.js laravel-4


【解决方案1】:

在您的请求中设置以下标头

content-type:application/json

或者您也可以在“App::before”过滤器中设置它

App::before(function($request)
{
    $request->headers->set('content-type','application/json');
});

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 2020-07-22
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多