尝试在Laravel中验证JSON请求

时间:2019-01-29 14:57:38

标签: laravel axios

我重新放置了这个json,如何在laravel中验证这个json请求: https://pastebin.com/TP8VcLnk我知道只处理基本输入就不一样了。

这是我的Vue代码:

  updateUsersProfile(){
     axios({
        method: 'PUT',
        url: this.updateProfileEndpoint , 
        data: {
          form :  this.form
        },
      }).then(response => { 
        console.log(response);
      }).catch(error => {
        console.log(error.response.status);
      });
     } 

这是我没有验证部分的代码,因为我似乎无法验证所有内容

  public function updateUsersProfile($userId)
      {   

        if ( request()->isJson()){
          /*Validate the request*/

          $data = json_decode(request()->form, true);

          return $data ; 


      }
      else {
        $this->validate($request,[
          // all validation requirements
        ])

         $user = auth()->user()->with('details')->find($userId) ;
         $user->display_name = request()->get('display_name') ; 
         $user->username = request()->get('username');
         $user->save();

         $user->details->first_name = request()->input('first_name') ; 
         $user->details->middle_name = request()->input('middle_name') ; 
         $user->details->last_name = request()->input('last_name') ; 
         $user->details->address = request()->input('address') ; 
         $user->details->alternate_email = request()->input('alternate_email') ; 
         $user->details->bio = request()->input('bio') ; 
         $user->details->address = request()->input('address') ; 
         $user->details->save() ;


         if (request()->wantsJson()) {
          return response($user, 201);
        }

        return redirect()->route('students.dashboard');



    }

1 个答案:

答案 0 :(得分:0)

您可以通过Laravel Requests Layer获得更好的体验。 https://laravel.com/docs/5.7/validation#form-request-validation 在您的情况下,它将类似于updateProfileRequest,它将包含所有验证逻辑,包括自定义验证规则等。 您的控制器将获得有效的请求。