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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们可以将模型传递给雄辩的Laravel的updateOrCreate方法吗?相关的知识,希望对你有一定的参考价值。

无论如何将模型传递给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 );
答案

你可以使用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());

以上是关于我们可以将模型传递给雄辩的Laravel的updateOrCreate方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

laravel 雄辩的关系 3 模型

雄辩的模型属性作为骆驼案例 [Laravel 5.2] [Dingo API]

laravel:雄辩的例子将数据插入数据库

Laravel 5.6 |雄辩的一对多关系

Laravel 雄辩模型如何从关系表中获取数据

Laravel - 节省雄辩的关系