如果用户创建了帐户,我希望将默认设置存储在其他表中。我有两个模型:User
和UserSettings
。
创建用户后如何创建设置部分?
我创建用户如下:
$user = User::create([
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
然后我尝试了:
$user->settings()->save(new UserSettings());
我也尝试了create
方法,但没有成功。我总是收到
HasAttributes.php第818行中的ErrorException:非法偏移类型
在User::class
模型中
public function settings()
{
return $this->hasOne(UserSetting::class, 'user_id', 'id');
}
和UserSetting::class
public function user()
{
return $this->belongsTo(User::class, 'id', 'user_id');
}
user_settings
表
settings_id | user_id | different_options
答案 0 :(得分:1)
我尝试了下面的代码,它的工作原理。请看看。
$user = new User;
$user->username = "JicksonJohnson";
$user->email = "jicksonkoottala@gmail.com";
$user->password = bcrypt('123456');
$user->save();
$user->settings()->save(new UserSettings(array('user_id' => $user->id,'options' => 'test options')));
在用户模型中,我创建了一个关系。
public function settings()
{
return $this->hasOne(UserSettings::class, 'user_id', 'id');
}