Asked Nov 19th, 2019 9:32 a.m. 107 0 2
  • 107 0 2
+1

Thắc mắc về gửi email trong laravel

Share
  • 107 0 2

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 ANSWERS


Answered Nov 19th, 2019 9:39 a.m.
+4

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);
            });
}  
Share
Nov 21st, 2019 7:51 a.m.

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.

0
| Reply
Share
Answered Nov 19th, 2019 9:40 a.m.
+1

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.

Share
Viblo
Let's register a Viblo Account to get more interesting posts.