Laravel отправить почту - PullRequest
0 голосов
/ 24 апреля 2018

Добрый вечер всем, у меня есть некоторые проблемы с отправкой почты по адресу: у меня есть код в контроллере, и есть данные, взятые из базы данных с объединениями, эта переменная $ survey показывает мне электронные адреса опроса, принадлежащего команде.Но мне нужно кое-что, как отправить электронное письмо на все электронные письма, которые я получаю из переменной $ survey.Когда я помещаю переменную $ survey в $ message-> to ($ survey);он показывает мне неопределенная переменная

мой код ниже, как я могу его использовать.Когда я вставляю -> to ();нормальный один адрес электронной почты, он работает, но мне нужно отправить одно и то же письмо всем членам команды

public function startSurvey(Request $req) {

    $nameSurvey = $req->input('SurveySelectBox');
    $startDate = $req->input('surveyStartDate');
    $endDate = $req->input('surveyEndDate');

    $data = array(
        'updated_at' => Carbon::now(),
        'started_at' => $startDate,
        'ended_at' => $endDate
    );

    DB::table('survey')->where('surveyId','=',$nameSurvey)->update($data);

    $survey = Survey::where('surveyId' , '=', $nameSurvey)
        ->join('team','team.teamId', '=', 'survey.teamId')
        ->join('teammembersall','teammembersall.TeamId', '=', 'team.TeamId')
        ->join('users','users.id', '=', 'teammembersall.UserId')
        ->select('users.email')
        ->get();

    Mail::raw('You have new survey to answer: http://localhost:8000/profile', function ($message) {
        $message->from('kristijanask@gmail.com', 'New Survey released');
        $message->to($survey);
    });

    return redirect('surveyDrafts');
}

1 Ответ

0 голосов
/ 24 апреля 2018

Вам необходимо использовать use ($survey), чтобы использовать переменную в анонимной функции Почта:

Mail::raw('...text', function ($message) use ($survey) {
    $message->from('kristijanask@gmail.com', 'New Survey released');
    $message->to($survey);
});

Вам также может понадобиться использовать ->pluck() и toArray() нарезультат запроса, чтобы сделать результат массивом:

$survey = Survey::where('surveyId' , '=', $nameSurvey)
    // long query
    ->get()
    ->pluck('email')
    ->toArray();
...