如何解决 Call to a member function update() on null on laravel 8?

how to solve Call to a member function update() on null on laravel 8?

我收到这种对 null() 成员函数更新的错误调用。在下面显示了我的代码,请任何人都可以解决 一切都很好,当我在那个时候进行图像文件更新时出现此错误。

这是我的控制器代码 ////

函数user_update(请求$request){

           $user= User::findOrFail($request->id)->update([
             'name'=>$request->name,
             'email'=>$request->email,
             'address'=>$request->address,
             'nationality'=>$request->nationality,
             'date_of_birth'=>$request->date_of_birth,
             'father_name'=>$request->father_name,
             'mother_name'=>$request->mother_name,
             'gender'=>$request->gender,
             'n_photo'=>$request->n_photo,



           ]);


           if ($request->hasFile('n_photo')) {

               $photo_upload     =  $request ->n_photo;
               $photo_extension  =  $photo_upload -> getClientOriginalExtension();
               $photo_name       =  "toletx_auth_image_". $user . "." . $photo_extension;
               Image::make($photo_upload)->resize(452,510)->save(base_path('public/uploads/auth/'.$photo_name),100);
               User::find($user)->update([
               'n_photo'          => $photo_name,
                   ]);


                 }
           return back()->with('success','User information have been successfully Updated.');
     }

///////我的blade 文件

                <form method="POST" action="{{ route('user_update') }}" enctype="multipart/form-data">
                    @csrf
                    <div class="form-group row">
          <input type="text" name="id" value="{{$list->id}}">

                    </div>
                    <div class="form-group row">
                        <label class="col-sm-12 col-md-2 col-form-label">User name</label>
                        <div class="col-sm-12 col-md-10">
                            <input class="form-control" value="{{$list->name}}" name="name" placeholder="Location" type="text" >
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-sm-12 col-md-2 col-form-label">Email</label>
                        <div class="col-sm-12 col-md-10">
                            <input class="form-control" value="{{$list->email}}" name="email" placeholder="Location" type="text">
                        </div>
                    </div>
        <div class="form-group row">
                        <label class="col-sm-12 col-md-2 col-form-label">Mobile Number</label>
                        <div class="col-sm-12 col-md-10">
                            <input class="form-control" value="{{$list->phone}}" name="phone" placeholder="Location" type="text" >
                        </div>
                    </div>
        <div class="form-group row">
                        <label class="col-sm-12 col-md-2 col-form-label">Address</label>
                        <div class="col-sm-12 col-md-10">
                            <input class="form-control" value="{{$list->address}}" name="address" placeholder="Location" type="text">
                        </div>
                    </div>
        <div class="form-group row">
                        <label class="col-sm-12 col-md-2 col-form-label">Nationality</label>
                        <div class="col-sm-12 col-md-10">
                            <input class="form-control" name="nationality" value="{{$list->nationality}}" placeholder="nationality" type="numeric">
                        </div>
                    </div>
        <div class="form-group row">
          <label class="col-sm-12 col-md-2 col-form-label">Date of birth</label>
          <div class="col-sm-12 col-md-10">
            <input type="text" class="form-control" placeholder="Birth Date" name="date_of_birth" value="{{$list->date_of_birth}}">
          </div>
        </div>

        <div class="form-group row">
          <label class="col-sm-12 col-md-2 col-form-label">Father Name</label>
          <div class="col-sm-12 col-md-10">
            <input type="text" class="form-control" placeholder="Father name" name="father_name" value="{{$list->father_name}}">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-12 col-md-2 col-form-label">Mother Name</label>
          <div class="col-sm-12 col-md-10">
            <input type="text" class="form-control" placeholder="mother name" name="mother_name" value="{{$list->mother_name}}">
          </div>
        </div>

        <div class="form-group">

        <div class="form-group form-float">
                      <div class="card">

                         <div class="body">
                             <input type="file" class="dropify" name="n_photo"  >
                             <img src="{{ asset('uploads/auth') }}/{{ $list->n_photo }}" alt="">
                         </div>
                     </div>
                    </div>

                    <button class="btn btn-primary" type="submit">Update</button>

这段代码有 2 个主要问题:

User::find($user)->update(['n_photo' => $photo_name]);

首先,正确的语法是使用 $user->id,而不是 $user:

User::find($user->id)->update(['n_photo' => $photo_name]);

其次,那是超级多余$user 已经是 User::find() 的结果,所以你无缘无故地翻倍了。

要解决您的问题,只需将您的代码调整为:

$user->update(['n_photo' => $photo_name]);

只是间距问题,请检查这两行

//之前 // 错误

$photo_upload     =  $request ->n_photo;

$photo_extension  =  $photo_upload -> getClientOriginalExtension();

//后//正确

$photo_upload     =  $request->n_photo;

$photo_extension  =  $photo_upload->getClientOriginalExtension();

function user_update(Request $request){
           $photo_name = '';
           $user= User::findOrFail($request->id);

           if ($request->hasFile('n_photo')) {
               $photo_upload    =  $request->n_photo;
               $photo_extension = $photo_upload->getClientOriginalExtension();
               $photo_name      =  "toletx_auth_image_". $user . "." . $photo_extension
           Image::make($photo_upload)->resize(452,510)->save(base_path('public/uploads/auth/'.$photo_name),100);
           }
            $user->update([
                    'name'=>$request->name,
                    'email'=>$request->email,
                    'address'=>$request->address,
                    'nationality'=>$request->nationality,
                    'date_of_birth'=>$request->date_of_birth,
                    'father_name'=>$request->father_name,
                    'mother_name'=>$request->mother_name,
                    'gender'=>$request->gender,
                    'n_photo'=>$photo_name,
               ]);

                 }
           return back()->with('success','User information have been successfully Updated.');
     }