cww*_*cww 5 laravel eloquent eloquent-relationship
当我们通过 Eloquent 关系模型插入或更新数据时,最好使用哪种方法?
例子
$user->profile->update(['salary' => 5000]);
vs
$user->profile()->update(['salary' => 5000]);
Run Code Online (Sandbox Code Playgroud)
我明白那个
我不知何故记得我看到有人推荐使用$user->profile->update()而不是$user->profile()->update()但我找不到文章或参考链接了
但是,我发现如果$user->profile为null,那么它可能会导致错误,例如
Call to a member function update() on null
那么一直使用关系函数更新会不会更方便呢?
$user->profile()->create()
$user->profile()->update()
$user->profile()->save()
$user->profile()->delete()
Run Code Online (Sandbox Code Playgroud)
有什么情况我们应该使用$user->profile->save()来代替吗?
或者当它处于多重嵌套关系时应该使用它吗?
$user->profile->bank()->create()
$user->profile()->bank()->create()
Run Code Online (Sandbox Code Playgroud)
参考链接(出于我自己的理解)
目前,将在应用程序中使用下面的代码,两者都会触发事件
if ($user->bank === null) {
$user->bank()->save(new UserBankAccount($input)); // trigger created event
// $user->bank()->create($input);// trigger created event
} else {
$user->bank->update($input); // trigger updated event
// $user->bank()->update($input); // will NOT trigger updated event
}
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以使用forceFill()
例子:
$user->bank->forceFill($data)->save();
Run Code Online (Sandbox Code Playgroud)