我们可以将模型传递给雄辩的Laravel的updateOrCreate方法吗?

问题描述 投票:0回答:1

无论如何将模型传递给Eloquent laravel的updateOrCreate方法?我当前的代码工作正常,我将数组传递给updateOrCreate方法。

$ud = UserDetail::updateOrCreate(
                     ['user_id' => $user->id],
                     [
                      'father_name' => $request['fname'], 'dob' => $request['dob'], 
                      'contact_no' => $request['contactNumber'], 'img_url' => $url,
                      'postal_address' => $request['postalAddress'],
                      'permanant_address' => $request['permanantAddress'], 
                      'gender' => $request['gender'], 'religion' => $request['religion'], 
                      'marital_status' => $request['maritalStatus'], 
                     'district_id' => $request['district'], 'profile_status' => $status]);

我多次使用updateOrCreate方法。所以我想创建一次模型,将这些值分配给模型,然后将其传递给updateOrCreate方法,而不是传递大型数组。

 //Create model and assign values

 $user_d = new UserDetail;
 $user_d->father_name = $request['fname'];
 $user_d->dob = $request['dob'];

 //pass the model to updateOrCreate method
 $ud = UserDetail::updateOrCreate(
                                ['user_id' => $user->id], $user_d );
php laravel eloquent
1个回答
2
投票

你可以使用attributesToArray方法

//Create model and assign values

$user_d = new UserDetail;
$user_d->father_name = $request['fname'];
$user_d->dob = $request['dob'];
$user_d->save();

//pass the model to updateOrCreate method
$ud = UserDetail::updateOrCreate([
          'user_id' => $user->id
      ], $user_d->attributesToArray());
© www.soinside.com 2019 - 2024. All rights reserved.