【问题标题】:Laravel: Fetch record from db and send it to email templateLaravel:从数据库中获取记录并将其发送到电子邮件模板
【发布时间】:2015-10-20 10:24:58
【问题描述】:

我已经在 Laravel 5 中成功实现了发送电子邮件的过程。现在,我要做的就是从数据库中获取一些记录并将其发送到电子邮件。我的发送电子邮件代码是:

 Mail::send('email', ['name' => "EE"], function($m) {
 $m->to(Input::get('email'), '')->subject('Password Request');
 });

电子邮件模板是:

Hello,

Your password has been changed, successfully.
Your new password is:"**password from database**" 
Kindly, change your password later on.

Thanks!

所以“来自数据库的密码”必须来自数据库。我该怎么做?有什么帮助吗?

【问题讨论】:

  • 嘿.. 你不能从数据库中获取密码,因为它是加密的。您可以做的是插入一个新密码并将新密码发送到用户的电子邮件
  • 好吧,我也打算这样做,但我没有在意,因为我的基本问题是插入后获取它,并将其放入电子邮件模板中。,谢谢!

标签: php mysql email laravel-5


【解决方案1】:
$userInfo = User::find(1);
        Mail::send('yourTemplate', array('userInfo'=> $eventInfo), function($message)  {
        $message
            ->from('from@mail.com', 'test')
            ->to('to@mail.com', 'name')
            ->subject('subject');
         });

然后在你的模板文件中使用这个变量,比如

Hello,

Your password has been changed, successfully.
Your new password is: {!! $userInfo->password !!};
Kindly, change your password later on.

Thanks!

【讨论】:

    【解决方案2】:

    根据您希望从数据库表中获取密码的问题, 好吧,这是不可能的,因为密码是加密的,向用户发送加密版本是没有用的。

    您可以做的是生成一个新密码,将新密码保存在用户行下的数据库中,电子邮件列然后将生成的密码通过电子邮件发送给用户:

    你可以这样做:

    我假设用户电子邮件地址存储在 `user 表中的email 列下,并且您有一个用户模型:

    $email = Input::get('email');
    $user = User::where('email', $email)->first();
    
    if($user){
          $new_password = str_random(8); //generates random string , eight character long
    
          $user->password = \Hash::make($new_password);
          $user->save();
    
          $data = [
                     'name'          => $user->first_name,
                     'new_password ' => $new_password 
          ];
    
          Mail::send('emails.password-reset', $data, function($m) use ($user){
             $m->to($user->email, '')->subject('Password Request');
          });
    }
    
    
    In email template: views\emails\password-reset.blade.php:
    
    Hello {!!$name!!},
    
    Your password has been changed, successfully.
    Your new password is:"{!!$new_password!!}" 
    Kindly, change your password later on.
    

    【讨论】:

    • 嘿,我试过你说的,但我遇到了这个错误:Undefined variable: new_password (View: D:\Xampp\htdocs\ehsan\bkonme\resources\views\email.blade.php)
    • 哦,是的,它就像魅力一样。我在$data数组中犯了一个小错误。肯定+1。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2016-11-03
    • 2016-11-23
    相关资源
    最近更新 更多