0

我想将字符串化的 JSON 发送到 API 请求的字段之一,如下所示:

解码:

https://api.some.com/foo/bar?a=788&b=My Name&c=[{"name":"pejman"},{"Some":"thing"}]

我想c使用参数获取参数,$request->c但我想在我的控制器中自动将其作为解码的 JSON 获取。

这是我的 PHP 代码

我的请求.php

<?php

use InfyOm\Generator\Request\APIRequest;

class MyRequest extends APIRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'a' => 'required',
            'b' => 'required',
            'c' => 'requried',
        ];
    }
}

SomeController.php

<?php

class SomeController extends Controller
{

    public function store(MyRequest $request)
    {
        $c = $request->c;
        $c = $request->json('c');
        $c = $request->json()->all();
    }

}

我想$c在我的控制器中自动解码 JSON,我该怎么做?该事件是否可以使用MyReqest以及如何执行此操作?

4

1 回答 1

3

prepareForValidation()您可以使用位于 中的方法来操作请求数据Illuminate\Validation\ValidatesWhenResolvedTrait。所以,在你的MyRequest类中实现这个方法:

protected function prepareForValidation()
{
    $this->merge([
        'c' => json_decode($this->c),
    ]);
}
于 2020-03-18T17:31:35.120 回答