我是Laravel的新手,并试图根据下拉选择来确定如何向某人发送电子邮件。我正在使用Laravel7。下面将解释我的情况:
在注册时,我给用户一个选择特许经营权的选项,方法是从数据库中检索特许经营权并将特许经营权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));
}
如果您的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。