我正在尝试使用Laravel发送电子邮件,但是我在发送邮件时需要发送客户信息和随机生成的密码。客户信息出现在外发邮件中,但密码为空。
控制器功能
public function register(RegisterRequest $request)
{
$random = str_shuffle('abcçdefgğhıijklmnoöpqrsştuüvwxyzABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ234567890!$%^&!$%^&');
$password = substr($random, 0, 10);
$hashed_password = Hash::make($password);
$activation_key = Str::random(60);
$request->request->add(["password"=> $hashed_password,"activation_key"=> $activation_key]);
$customer = Customer::create($request->all());
if ($customer) {
Mail::to(request('email'))->send(new CustomerRegisterMail($customer, $password));
Alert::success('Success', 'Some Success Message');
return back();
} else {
Alert::error('Error', 'Some Error Message');
return back();
}
}
CustomerRegisterMail.php
class CustomerRegisterMail extends Mailable
{
use Queueable, SerializesModels;
public $customer;
public $password;
public function __construct(Customer $customer, $password)
{
$this->customer = $customer;
$this->password = $password;
}
public function build()
{
return $this
->from('noreply@example.com','Some Name')
->subject(config('app.name'). ' - Customer Register')
->view('mails.customer_register')->with(['name' => $this->customer->name, 'surname' => $this->customer->surname, 'email' => $this->customer->email, 'password' => $this->password]);
}
}
customer_register.blade.php
Hello {{$name}} {{$surname}},
E-Mail : {{$email}}<br>
Password: {{$password}}
我能得到什么
Hello Behçet Atalay,
E-Mail: technobecet4@gmail.com
Password:
如何将两个变量同时发送到邮件视图?
答案 0 :(得分:1)
将它们作为邮件类的公共属性,您可以直接在视图中使用它们,而无需使用with
传递它们。因此,在您的customer_register
视图中,您可以调用{{$customer->name}}
,它将起作用。密码也一样,在您的视图中仅使用{{ $password }}
。
顺便说一句,您的问题是,您正在使用password
键传递密码,并使用$sifre
调用该密码,该密码不存在,因此为空。
答案 1 :(得分:1)
更新刀片文件
您在邮件文件中传递了password
变量,并尝试使用刀片中的sifre
进行检索
customer_register.blade.php
Hello {{$name}} {{$surname}},
E-Mail : {{$email}}<br>
Password: {!! $password !!}
实际上{{ $password }}
逃脱了您的价值b"$%JBg±ÄzrÅ"
{!! $password !!}
无法逃脱您的价值