Нужно, чтобы при регистрации, помимо таблицы users, добавлялась запись в связанную таблицу (там два поля id и user_id, остальные отмечены как nullable и будут заполняться позднее). Из документации знаю, что за запись в бд отвечает этот код: PHP: protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']) ]); } Также нашел в документации: https://laravel.su/docs/5.4/eloquent-relationships#inserting-and-updating-related-models и я даже могу понять что делается на каждой строчке кода. Но не могу вписать это туда, куда мне нужно; к примеру, как мне узнать айди пользователя, который будет вставлен при новой записи? Или как вписать это в блок return? И так далее. Прошу помощи в этом вопросе.
В документации достаточно ясно и емко описано и я понял как делать это в случае обычных моделей, но это регистрация. И задача не просто добавить поля, а запись в связанную таблицу. Может быть, это просто, но я испытываю трудности и даже из документации не понимаю как сделать
Есть там такое понятия как события, точно синтаксис не скажу щас, но after/before к операции. Там и прописывает доп создание.
это посредники что-ли? PHP: class CreatePerson { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); return $response; } } Что вписать внутри метода между респонс и ретерном? Имею ввиду как связать нового пользователя с user_id в связанной таблице?
А поизучать код? Во-первых, любые методы трейтов ларавеля можно в своём контроллере перекрыть. Как - читаем про трейты в PHP Во-вторых, там есть событие Registered. https://laravel.ru/docs/v5/events - вот события, так и быть, ссылка на русский Вот такой вызов есть: PHP: event(new Registered($user = $this->create($request->all()))); ПОтом перехватываешь событие и делаешь всё, что угодно. Вообще, код трейтов доступный, не так сложно разобраться, что там делается. У нас же в PHP всё в исходных кодах, лезешь и смотришь, что происходит. Ctrl+click - моё любимое сочетание в IDE