Laravel:如何获取自动增加的ID并通过电子邮件发送

时间:2017-01-15 09:11:53

标签: laravel email laravel-5.3

我希望通过电子邮件获取上次向管理员发送的ID。我怎样才能做到这一点?我在Register controller

中尝试过类似的东西
protected function create(array $data)
{
    //dd($data);

    $models = new User;
    $user=User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        /*'usertype' =>$data['usertype'],*/
        'status' => 0,
    ]);
    $use = array('name' => 'Admin');
    //$models->email = Auth::user()->email;
    $message_id = "";
 Mail::send('emailMessage', $use, function ($m) use ($message_id){

      $message_id = Auth::User()->id;


      $m->to('mrbbangladesh2017@gmail.com')
        ->subject('Confirm email');
  });
 return $user;

}

1 个答案:

答案 0 :(得分:0)

要更正您的代码,您可以使用以下内容:

Mail::send('emails.registration', ['user' => $user], function ($m) {
    $m->from('admin@app.com', 'App Admin');
    $m->to('admin@app.com', 'App Admin')->subject('Confirm Registration!');
});

然后创建一个类似的视图:

<!-- View stored in resources/views/emails/registration.blade.php -->

A new user, {{ $user->name }} has been registered

执行相同操作的另一种方法是使用events并在控制器中触发UserCreated之类的事件。这样,您可以拥有多个相同事件的侦听器(例如,如果您以后不仅要向管理员触发电子邮件,而且以后还要执行其他操作,您可以添加侦听器)或让多个控制器触发此事件(如果有其他方式注册用户)

我还建议您使用mail queues来缩短响应时间