模型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
]);
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 7

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

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

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

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

观察者模式

1年前 评论
随波逐流

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

1年前 评论

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