我是Laravel的新手,正在尝试弄清楚如何根据下拉选择向某人发送电子邮件。我使用的是Laravel 7。我将在下面解释我的场景:
在注册时,我给用户一个选择,以选择一个特许经营从数据库中检索特许经营,并保存在用户表中的特许经营ID。注册成功后,我想发送一封电子邮件到属于所选特许经营的电子邮件地址,以便他们批准用户。
目前,它被设置为发送电子邮件到主站点管理员,这不是我想要的。
下面是我的注册函数:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'franchise_id' => $data['franchise_id'],
])->assignRole('User');
$admin = User::where('Admin', 1)->first();
if ($admin) {
$admin->notify(new NewParentRegistration($user));
}
return $user;
} 这是我的刀片文件中的下拉选择,用于在注册时选择特许经营:
<div class="form-group row">
<label for="franchise" class="col-md-4 col-form-label text-md-right">Choose your Franchise</label>
<div class="col-md-6">
<select name="franchise_id" id="franchise" class="form-control">
@foreach ($franchises as $franchise)
<option value="{{ $franchise->id }}">{{ $franchise->franchise_name }}</option>
@endforeach
</select>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div> 我想要触发的电子邮件地址位于我的特许经营表中,该表有一个特许经营电子邮件列。
那么,我如何修改下面的代码来获取注册页面上所选特许经营商的电子邮件地址?
$admin = User::where('Admin', 1)->first();
if ($admin) {
$admin->notify(new NewParentRegistration($user));
} 发布于 2020-03-23 08:54:23
如果您的Franchise模型在数据库中定义了email列,则可以直接将电子邮件发送到Franchise。
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'franchise_id' => $data['franchise_id'],
])->assignRole('User');
$franchise = Franchise::find($data['franchise_id']);
// Notify the franchise...
$franchise->notify(new NewParentRegistration($user));
return $user;
}别忘了--为了让它起作用,你还必须在特许经营模式下使用use the Notifiable trait。
https://stackoverflow.com/questions/60802856
复制相似问题