首页 > 解决方案 > 在注册相关表中添加默认用户设置,Laravel

问题描述

当用户注册时,如何在我有表的 user_settings 表中保存一些默认用户设置?我有两个模型的 hasOne 和 belongsTo 关系设置。我在寄存器控制器中尝试了类似的操作,但出现错误。

    protected function create(array $data)
{

    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);

    Return Usersetting::create([
        'user_id' => $user->id,
        'user_name' => 'u'.$user->id,
        'profile_name' => $user->name,
        'user_email' => $user->email,
        'user_private account' => 0,
        'user_fans_counter' => 1,
        'new_subscriber_alert' => 1,
        'new_tip_alert' => 1,
        'new_private_message_alert' => 1,
        'new_referral_alert' => 1,
    ]);
}

标签: laravel

解决方案


您可以剥离第二部分并registeredRegisterController. 如果您正确设置了关系,那么您可以添加如下

public function registered(Request $request, $user) 
{
    $user->userSetting()->create([
        'user_name' => 'u'.$user->id,
        'profile_name' => $user->name,
        'user_email' => $user->email,
        'user_private account' => 0,
        'user_fans_counter' => 1,
        'new_subscriber_alert' => 1,
        'new_tip_alert' => 1,
        'new_private_message_alert' => 1,
        'new_referral_alert' => 1,
    ]);
}

这样,user_id应该通过关系自动填充。


推荐阅读