【发布时间】:2021-11-01 08:59:07
【问题描述】:
我想对代码做一个增强,实际上感觉一团糟。
当我创建一个具有“电子邮件”字段的用户时。我还需要基于相同的数据创建一个电子邮件模型(多态)。
实际上 UserController 的“store”方法看起来有点大。那么,是否有另一种方法可以挂钩创建事件,然后创建电子邮件。这是我现在的做法:
$user = User::make($request->safe()->except('active', 'is_contact', 'groups', 'password'));
$user->password = Hash::make($request->password);
$user->active = (!empty($request->active)) ? 1 : 0;
$user->is_contact = (!empty($request->is_contact)) ? 1 : 0;
$user->save();
$this->saveEmail($user);
还有保存邮箱:
private function saveEmail($user)
{
$email = new Email;
$email->fill([
'email' => $user->email,
'email_type' => 'primary',
'main' => 1,
]);
$user->emails()->save($email);
}
那么,在控制器之外还有其他方法可以做到这一点吗? 不管怎么说,还是要谢谢你。埃尔南。
【问题讨论】:
标签: laravel laravel-8 eloquent-relationship