Добрый день
Я использую Mailgun для отправки электронных писем пользователям с необходимой информацией из заказа после отправки формы, мне удалось отправить тему и адрес электронной почты, но у меня возникают проблемы при отправке случайного числа, которое присваивается при создании приказ.
вот мой контроллер:
public function store(Request $request)
{
$order = $user->orders()->create([
'randomid' => rand(100000,999999),
'subject' => $request->get('subject'),
'email' => $request->get('email'),
]);
$data = $request->only('subject', 'email', 'randomid');
Mail::send('emails.note',
$data
, function($message) use ($data)
{
$message->subject('New Order: '.$data['subject'])
->from('[email protected]')
->to($data['email']);
});
}
Я видел, что вы получаете $ data из объекта запроса
$data = $request->only('subject', 'email', 'randomid');
но randomid был сгенерирован в созданном методе
$order = $user->orders()->create([
'randomid' => rand(100000,999999),
'subject' => $request->get('subject'),
'email' => $request->get('email'),
]);
Так что нет randomid
в запросе.
Я думаю, что вы должны получить $ data из $ order, как показано ниже:
$data = $order->toArray();
Итак, у вас будет:
public function store(Request $request)
{
$order = $user->orders()->create([
'randomid' => rand(100000,999999),
'subject' => $request->get('subject'),
'email' => $request->get('email'),
]);
$data = $order->toArray();
Mail::send('emails.note',
$data
, function($message) use ($data)
{
$message->subject('New Order: '.$data['subject'])
->from('[email protected]')
->to($data['email']);
});
}
randomid
не приходит из запроса. Вы генерируете его значение вручную, используя rand(100000,999999)
!
Пожалуйста, попробуйте это:
public function store(Request $request){
$data = [
'randomid' => rand(100000, 999999) ,
'subject' => $request->input('subject') ,
'email' => $request->input('email')
];
$order = $user->orders()->create($data);
Mail::send('emails.note', $data, function ($message) use($data) {
$message->subject('New Order: ' . $data['subject'])
->from('[email protected]')->to($data['email']);
});
}