【问题标题】:Laravel 5 Eloquent, double one-to-one save (get Id before save)Laravel 5 Eloquent,双一对一保存(保存前获取 ID)
【发布时间】:2015-05-14 00:35:18
【问题描述】:
$profile = new Profile;
$user = new User;

$user['profile_id'] = $profile['id'];
$profile['user_id'] = $user['id'];

$profile->save();
$user->save();

所以我在两个模型文件中都使用“hasOne”设置了关系。这些不是 NULL FOREIGN KEYS,所以我需要立即定义 id 关系。但是 ['id'] 直到保存后才可用。如何同时进行这 2 个保存操作?

【问题讨论】:

    标签: laravel eloquent laravel-5


    【解决方案1】:

    你应该只在其中一个表中有外键,并将另一个关系定义为 belongsTo

    编辑

    如果您将 user_id 保留在配置文件表中,则将其添加到您的用户模型中

    public function profile()
    {
        return $this->hasOne('App\Profile');
    }
    

    那么你可以这样做

    $user = new User;
    $user->save();
    $user->profile()->save(new Profile());
    

    【讨论】:

    • 好的,谢谢。如果您不为此添加一些代码,我会为将来偶然发现此页面的人添加(我真的找不到重复的)
    • 如果需要,继续添加编辑。我认为这更像是一个数据库设计错误。
    • 这是一个简化的例子。是的,个人资料可能应该属于用户。我仍然不清楚保存的语法。我认为反击我提供的代码的示例会有所帮助
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 2021-02-02
    相关资源
    最近更新 更多