Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.10.2017 13:07:59

Во время регистрации создание второй записи в БД.

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.

Как лучше это реализовать?

Не в сети

#2 25.10.2017 13:22:40

Re: Во время регистрации создание второй записи в БД.

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;
}

Не в сети

#3 25.10.2017 14:02:03

Re: Во время регистрации создание второй записи в БД.

Метод регистрации:

	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)

Не в сети

#4 25.10.2017 16:27:43

Re: Во время регистрации создание второй записи в БД.

Приложи весь stack trace этой ошибки.

Не в сети

#5 25.10.2017 17:06:19

Re: Во время регистрации создание второй записи в БД.

Ошибка...

Я не так показал:

$user->chars()->create( [ 'user_id' => $user->id ] );

user_id передавать не нужно, он сам ставится когда используешь связь.

А ошибка из-за того, что ты не возвращаешь $user, как я показал.

Изменено AlexeyMezenin (25.10.2017 17:08:50)

Не в сети

#6 25.10.2017 17:15:01

Re: Во время регистрации создание второй записи в БД.

covobo

, спс уже разобрался.

AlexeyMezenin

, благодарю за совет, действительно забыл вернуть $user.

Не в сети

Подвал раздела