Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过laravel中的api更新用户_Javascript_Php_Laravel_Api_React Native - Fatal编程技术网

Javascript 通过laravel中的api更新用户

Javascript 通过laravel中的api更新用户,javascript,php,laravel,api,react-native,Javascript,Php,Laravel,Api,React Native,我正试图通过api更新用户详细信息 public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:user

我正试图通过api更新用户详细信息

 public function update(Request $request, $id)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'string|min:6|confirmed',
            'phone' => 'string|min:6',
            'Age' => 'string',
            'Blood' => 'string',
            'Gender' => 'string',
            'Height' => 'string',
            'Weight' => 'string',
            'record' => 'string'
        ]);

        if($validator->fails()){
                return response()->json($validator->errors()->toJson(), 400);
        }

        $doc = User::find($id);

        if($request->hasFile('picture')){
            // Get filename with the extension
            $filenameWithExt = $request->file('picture')->getClientOriginalName();
            // Get just filename
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            // Get just ext
            $extension = $request->file('picture')->getClientOriginalExtension();
            // Filename to store
            $fileNameToStore= $filename.'_'.time().'.'.$extension;
            // Upload Image
            $path = $request->file('picture')->storeAs('public/images', $fileNameToStore);
        } else {
            $fileNameToStore = 'noimage.jpg';
        }

        $doc->name = $request->input('name');
          $doc->email = $request->input('email');
          $doc->phone = $request->input('phone');
          if($request->hasFile('picture')){
            $doc->picture = $fileNameToStore;
            }



           $doc->save();

        return response()->json([
            'message' => 'Success',

        ]);

    }
当我运行这个代码时,我得到了这个

"{\"name\":[\"The name field is required.\"],\"email\":[\"The email field is required.\"]}"
我注意到,当我在PostMan中使用表单数据时,出现了这个错误,如果我将其原样发送,它就会工作。 然后我尝试在我的react原生应用程序中使用它,我得到了与使用表单数据相同的错误

这是我在react native中的代码

const update = dispatch => {

  return async (name, email, phone, picture, Age, Blood, Gender, Height, Weight, id) => {
    const data = new FormData();

    data.append('name', name);
    data.append('email', email);
    data.append('phone', phone);
    data.append('Age', Age);
    data.append('Blood', Blood);
    data.append('Gender', Gender);
    data.append('Height', Height);
    data.append('Weight', Weight);
    data.append("picture", {
      type: 'image/jpg',
      uri: picture,
      name: 'profilepic.jpg'
    });
    const config = {
      method: 'put',
      url: `http://27a50145.ngrok.io/api/userregister/${id}`,
      data: data,
      headers: { 'Content-Type': 'application/json' }
    }


    await axios(config)
    navigate('UserAccount')
  }
}

此代码中的错误在哪里?

您需要在前端更改的方式

使用Body而不是Data param

const config = {
  method: 'put',
  url: `http://27a50145.ngrok.io/api/userregister/${id}`,
  body: JSON.stringify(data),
  headers: { 'Content-Type': 'application/json' }
}

这就像名称和电子邮件的值为null一样,请确保您的电子邮件和名称值不为null并正确发送到后端。也许您希望通过
dd($request->all()
检查您收到的所有值该值不为null