Laravel 5 Eloquent,双重一对一保存(保存前获取Id)

时间:2015-05-14 00:35:18

标签: laravel eloquent laravel-5

$profile = new Profile;
$user = new User;

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

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

所以我使用" hasOne"设置关系。在两个模型文件中。这些是NOT NULL FOREIGN KEYS所以我需要立即定义id关系。但是,[' id']在保存之后才可用。如何同时执行这两个保存操作?

1 个答案:

答案 0 :(得分:1)

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

修改

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

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

然后你可以这样做

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