Добавить пользовательские настройки по умолчанию в связанную таблицу при регистрации, Laravel

Когда пользователь регистрируется, как мне сохранить некоторые пользовательские настройки по умолчанию в таблице 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,
    ]);
}

В чем ошибка?

ColinMD 30.04.2019 00:17

SQL 'user_id' не имеет значения по умолчанию

Shawn Sonnier 30.04.2019 00:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете удалить вторую часть и добавить метод 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 должен автоматически заполняться через отношения.

Мне не нужно будет вызывать метод?

Shawn Sonnier 30.04.2019 00:32

нет, он автоматически звонит, когда регистрация завершена

ColinMD 30.04.2019 00:33

Аргумент 1, переданный в App\Http\Controllers\Auth\RegisterController::registered(), должен быть экземпляром App\Http\Controllers\Auth\Request, экземпляр Illuminate получил эту ошибку

Shawn Sonnier 30.04.2019 00:36

Только что заметил, что я поставил RegistrationController, когда он должен быть RegisterController

ColinMD 30.04.2019 00:36

Вам нужно будет включить «использовать Illuminate\Http\Request;» в ваших декларациях вверху

ColinMD 30.04.2019 00:37

Это работает!! Получение отсутствующих значений по умолчанию для полей, которые я намеренно пропустил. Я думаю, я должен сделать их обнуляемыми или что-то в этом роде?

Shawn Sonnier 30.04.2019 00:40

Да или добавить значения по умолчанию

ColinMD 30.04.2019 00:41

Другие вопросы по теме