访问FormRequest laravel

时间:2017-11-22 04:09:40

标签: php laravel laravel-5.5

要更新用户,我使用了名为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'),但它始终返回null值。

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

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

我通过PUT方法调用的网址是(例如):

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

在这种情况下我该怎么办?或者有其他方法吗?

1 个答案:

答案 0 :(得分:1)

而不是

  

$这 - >获得( 'USER_ID')

你需要使用

  

$这 - > USER_ID

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