Laravel使用多个变量发送邮件

时间:2019-03-26 07:08:45

标签: php laravel

我正在尝试使用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: 

如何将两个变量同时发送到邮件视图?

2 个答案:

答案 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 !!}无法逃脱您的价值