Только что закончил php artisan make:auth
, В app\Http\Controllers\Auth\RegisterController
лежит функция создания по умолчанию:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
Я добавил в представлении на той же странице этого представления по умолчанию (/register
) дату рожденияот другой модели.Как вставить новую функцию создания в ту же функцию создания по умолчанию?
UserInformation::create([
'user_id' => ???
'birth_date' => $data['birth_dae']
]);
Как я могу подключить это к вышеуказанному return
утверждение и как я смогу получить только что созданный id
из User
и передать его в user_id
из UserInformation
?
Моя идея до сих пор:
protected function create(array $data)
{
return [
User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]),
UserInformation::create([
'user_id' => ??? // should be the same as the id of the created user
'birth_date' => $data['birth_date'],
'color' => "blue"
])
];
}
Попытка сделать что-то вроде этого:
protected function create(array $data)
{
$user = new User;
$user->name = $data['name'];
$user->email = $data['email'];
$user->password = Hash::make($data['password']);
$user->save();
$user_id = $user->id;
$user_info = new UserInformation;
$user_info->user_id = $user_id;
$user_info->birth_date = $data['birth_date'];
$user_info->color = "blue";
$user_info->save();
return view('home');
}
Но все равно возвращает эту ошибку:
Аргумент 1, передаваемый в Illuminate \ Auth \ SessionGuard :: login () должен реализовывать интерфейс Illuminate\ Contracts \ Auth \ Authenticatable, экземпляр Illuminate \ View \ View данным
РЕДАКТИРОВАТЬ:
Мой хороший друг рекомендовал это:
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'pasword' => Hash::make($data["password"])
]);
UserInformation::create([
'user_id' => $user->id,
'birth_date' => $data['birth_date'],
'color' => 'blue'
]);
return $user;
}
И в моей модели UserInformation:
protected $fillable = ["user_id", "birth_date", "color"];