访问 FormRequest laravel 中的 url 参数

access to url parameter in FormRequest laravel

为了更新用户,我使用了一个名为 UserByAdminFormRequest 的 FormRequest,如下所示:

public function rules()
    {
        switch ($this->method()) {
            case 'GET':
            case 'DELETE': {
                //some Rules
            }
            case 'POST': {
                //some Rules
            }
            case 'PUT':
                $user_id = $this->get('user_id');

                dd($this);

                return [
                    'name'        => 'required',
                    'email'       => 'email|unique:users,email,' . $user_id . ',user_id',
                    'password'    => 'min:4',
                    're-password' => 'required_unless:password,' . NULL . '|same:password',
                ];


            case 'PATCH': {
                //some Rules
            }
            default:
                break;
        }

如您所见,email 字段应该是唯一的,但在这种情况下要忽略当前用户,我需要她的 user_id 值。

为此,我使用了 $this->get('user_id'),但它总是 return null 值。

我在我的控制器中使用了这样的 FormRequest:

public function update(UserByAdminFormRequest $request, \App\User $user)
    {
        //
    }

而我通过 PUT 方法调用的 url 是(例如):

http://api.zarsystem.dev/v1/dashboard/user/7

在这种情况下我能做什么或者有其他方法吗?

而不是

$this->get('user_id')

你需要使用

$this->user_id

要获取用户 ID 的值,请确保您有名称为 user_id 的输入字段或隐藏字段。