Отправка электронного письма на основе раскрывающегося списка в Laravel - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в Laravel и пытаюсь выяснить, как отправить письмо кому-либо на основе выпадающего списка. Я использую Laravel 7. Я объясню свой сценарий ниже:

При регистрации я даю пользователю возможность выбрать франшизу путем извлечения франшизы из базы данных и сохранения идентификатора франшизы в пользователе. Таблица. После успешной регистрации я хочу отправить электронное письмо на адрес электронной почты, который принадлежит выбранной франшизе, чтобы они могли утвердить пользователя.

В настоящее время настроено отправлять электронное письмо главному администратору сайта, который не является что я хочу.

Вот моя функция регистрации:

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));
        } 

1 Ответ

0 голосов
/ 23 марта 2020

Если ваша модель 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;
}

Не забудьте - для этого нужно работать, вы также должны использовать черту Notifiable в модели франшизы.

...