模型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
]);
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 7

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

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

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

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

观察者模式

2年前 评论
随波逐流

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

2年前 评论