模型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
]);
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

有没有啥好办法在创建user的时候一行实现自动profile也创建,一并传参

1年前 评论
看上隔壁小花了啦 1年前
Complicated 1年前
gongmeng

不建议使用模型事件,具体原因可以参考这篇文章laravel项目开发规范,建议放在service里面,写个方法集中处理这个问题。

1年前 评论
还不出来 1年前

观察者模式

1年前 评论
随波逐流

抛出规范的问题,我个人不喜欢 ob_server :joy:

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!