Laravel请求从不包含发布数据

时间:2015-07-07 11:25:47

标签: php laravel laravel-5

我使用的是Laravel 5.1,而且我无法使用其请求注入。

如果我print_r($request->all()),我会得到一个空数组:

Array
(
    [\] => 
)

但是当我检查Request::getContent()时,它表明我有内容。

{"test": "test"}

这是为什么?我以前从未遇到过这个问题。

我的控制器方法

public function state(Requests\CheckState $request) {
    print_r($request->all());
    print_r($request->getContent());
}

我的要求

class CheckState extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [

        ];
    }
}

1 个答案:

答案 0 :(得分:1)

将原始JSON数据发送到Laravel时,请务必指定Content-Type: application/json

这是因为Request类以这种方式检查JSON内容:

/**
 * Determine if the request is sending JSON.
 *
 * @return bool
 */
public function isJson()
{
    return Str::contains($this->header('CONTENT_TYPE'), '/json');
}

如果省略标题,则框架假定请求是纯文本。