Когда пользователь регистрируется, как мне сохранить некоторые пользовательские настройки по умолчанию в таблице user_settings, которая у меня есть? У меня есть настройка отношений hasOne и ownTo для двух моделей. Я пробовал что-то подобное в контроллере регистров, но получил ошибку.
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,
]);
}
SQL 'user_id' не имеет значения по умолчанию






Вы можете удалить вторую часть и добавить метод registered в свой RegisterController. Если у вас правильно настроены отношения, вы можете добавить, как показано ниже.
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 должен автоматически заполняться через отношения.
Мне не нужно будет вызывать метод?
нет, он автоматически звонит, когда регистрация завершена
Аргумент 1, переданный в App\Http\Controllers\Auth\RegisterController::registered(), должен быть экземпляром App\Http\Controllers\Auth\Request, экземпляр Illuminate получил эту ошибку
Только что заметил, что я поставил RegistrationController, когда он должен быть RegisterController
Вам нужно будет включить «использовать Illuminate\Http\Request;» в ваших декларациях вверху
Это работает!! Получение отсутствующих значений по умолчанию для полей, которые я намеренно пропустил. Я думаю, я должен сделать их обнуляемыми или что-то в этом роде?
Да или добавить значения по умолчанию
В чем ошибка?