2016-02-08 2 views
0

С Laravel 5.2, я хотел бы, чтобы гостевой пользователь предоставлял свои имена и фамилии при регистрации. В first_name и last_name поля из другой модели People, что в основном, как стол для их расширенных профилей:Laravel 5: как безопасно переопределить значение по умолчанию для пользователя :: create() для двух таблиц?

Users 
    id 
    email 
    username 

People 
    user_id 
    first_name 
    last_name 
    profile 
    ... 

В умолчанию AuthController, он вызывает создать метод класса пользователя, как это:

/** 
* Create a new user instance after a valid registration. 
* 
* @param array $data 
* 
* @return User 
*/ 
protected function create(array $data) 
{ 
    return User::create([ 
     'name'  => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 

Но что я должен сделать, чтобы перезаписать этот метод, чтобы он создавал пользователя, добавляя данные к двум вышеуказанным таблицам?

ответ

1

Вы можете добавить отношение к одному из модели User to People. Поэтому, как только вы создаете пользователя, вы можете позвонить пользователю и добавить детали следующим образом:

$user->people()->create(['first_name]=>$request->input('first_name')); 

См Laravel документы, чтобы узнать, как создать один к одному отношение. Это даст вам начало.

+0

Привет, спасибо снова !! Кажется, я понял это сейчас. Большое спасибо за ваше подтверждение. Я думаю, что вместо возврата я могу определить нового пользователя, а затем использовать вашу строку выше, а затем вернуть $ user. Это правильный путь? Я уже определил все отношения между моделями. –

+0

Да, вы тоже можете это сделать. –