Yêu cầu thg 11 19, 2019 9:32 SA 96 0 2
  • 96 0 2
+1

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

Chia sẻ
  • 96 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 CÂU TRẢ LỜI


Đã trả lời thg 11 19, 2019 9:39 SA
+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);
            });
}  
Chia sẻ
thg 11 21, 2019 7:51 SA

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.

Đã trả lời thg 11 19, 2019 9:40 SA
+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.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí