laravel eloquent 用模型存储子模型
laravel eloquent store submodel with model
如果用户创建了一个帐户,我想将默认设置存储在不同的 table 中。我有两个模型: User
和 UserSettings
。
创建用户后如何创建设置部分?
我创建用户如下:
$user = User::create([
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
然后我试了:
$user->settings()->save(new UserSettings());
我也尝试了create
方法,但没有成功。我总是收到
ErrorException in HasAttributes.php line 818: Illegal offset type
我有 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
table
settings_id | user_id | different_options
我尝试了下面的代码并且它有效。请看一下。
$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');
}
如果用户创建了一个帐户,我想将默认设置存储在不同的 table 中。我有两个模型: User
和 UserSettings
。
创建用户后如何创建设置部分?
我创建用户如下:
$user = User::create([
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
然后我试了:
$user->settings()->save(new UserSettings());
我也尝试了create
方法,但没有成功。我总是收到
ErrorException in HasAttributes.php line 818: Illegal offset type
我有 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
table
settings_id | user_id | different_options
我尝试了下面的代码并且它有效。请看一下。
$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');
}