Thắc mắc về gửi email trong laravel
Mình có 1 form liên hệ gồm các trường cơ bản như ( tên, email, sô đt, câu hỏi ) . Mình muốn khi submit thì nó sẽ gửi đến email của admin đã được cấu hình và 1 email nữa gửi đến chính khách hàng. Về việc gửi cho admin thì ok rồi vì nó là email cố định, nhưng mình ko lấy được email họ nhập vào để truyền cho $to.
if($req->email){
$data = ['hoten'=> $hoten,'email'=>$email] ;
Mail::send('email.lienhe',$data,function($msg){
$from = 'admin@admin.vn';
$subject = 'Tiêu đề';
$to = $req->email; ??????????????????
$cc = quantri@admin.vn;
$msg->from($from,'ADM');
$msg->to($to,'ADM')->cc($cc)->subject($subject);
});
}
Câu hỏi là làm sao để truyền được email của khách họ nhập vào $to . Thanks.
2 CÂU TRẢ LỜI
với callback thì cần use() mới sử dụng được localscope nhé
if($req->email){
$data = ['hoten'=> $hoten,'email'=>$email] ;
Mail::send('email.lienhe', $data, function($msg) use ($req) { // thêm ở đây
$from = 'admin@admin.vn';
$subject = 'Tiêu đề';
$to = $req->email;
$cc = quantri@admin.vn;
$msg->from($from,'ADM');
$msg->to($to,'ADM')->cc($cc)->subject($subject);
});
}
Có vẻ chắc là chủ thớt được bị trường hợp này. Biến $req
nằm ngoài scope của cái callback (anonymous function
) nên sẽ không tồn tại $req
trong phần code được triển khai của callback.
Bạn kiểm tra lại name
trong input nhập email xem đã để đúng là email
chưa? Hoặc dd('$req');
xem trong đó có truyền email
lên chưa? Nếu có thì mình nghĩ vấn đề không phải ở đoạn code kia đâu.