Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Laravel 5.4/5.
День добрый, возник такой вопрос.
Во время регистрации нового пользователя параллельно будет создаваться ещё одна новая запись только в другую таблицу (к примеру профаил).
То есть нужно вытянуть id-последнего зареганого юзера.
Схема такова, есть 2 таблицы:
users u profiles, есть рилейшены 1к1.
В RegistrationController есть такой код:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Хочу сделать так что бы по-мимо регистрации нового юзера, создавало в таблице профаил этого юзера, но нужно как-то узнать user-id.
Как лучше это реализовать?
Не в сети
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
$user->profile()->create(['address' => $data['address']]);
return $user;
}
Не в сети
Метод регистрации:
protected function create( array $data ) {
$user = User::create( [
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt( $data['password'] ),
] );
$user->chars()->create( [ 'user_id' => $user->id ] );
}
Type error: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given, called in /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php on line 35
Ошибка...
p.s: Но при этом в таблице профаил создало нужную запись... Как же тогда убрать ошибку по окончанию реги?
Изменено HolyFlames (25.10.2017 14:09:21)
Не в сети
Приложи весь stack trace этой ошибки.
Не в сети
Ошибка...
Я не так показал:
$user->chars()->create( [ 'user_id' => $user->id ] );
user_id передавать не нужно, он сам ставится когда используешь связь.
А ошибка из-за того, что ты не возвращаешь $user, как я показал.
Изменено AlexeyMezenin (25.10.2017 17:08:50)
Не в сети
covobo
, спс уже разобрался.
AlexeyMezenin
, благодарю за совет, действительно забыл вернуть $user.
Не в сети
Страницы 1