模型User有一个子模型Profile,有没有啥好办法创建User模型时自动创建Profile
我目前是用事件自动创建,然后在注册的时候更新。之所以这样做是为了防止在别的地方创建用户忘了创建profile,但是感觉这样有点不太好
因为要先create再update
class UserObserver
{
public function created(User $user): void
{
$user->profile()->create();
}
public function deleted(User $user): void
{
$user->profile()->delete();
}
}
$user = User::create([
'phone' => $verifyData['phone'],
'password' => $request->password,
'type' => $request->type,
'register_ip' => $request->ip(),
]);
$user->profile()->update([
'wx' => $request->wx,
'qq' => $request->qq
]);
有没有啥好办法在创建user的时候一行实现自动profile也创建,一并传参
不建议使用模型事件,具体原因可以参考这篇文章laravel项目开发规范,建议放在service里面,写个方法集中处理这个问题。
观察者模式
抛出规范的问题,我个人不喜欢
ob_server
:joy: