Laravel:как получить автоматический incremented id и отправить его через электронную почту

я хочу получить id, который зарегистрирован в последний раз отправить это администратору по электронной почте. как я могу это сделать? я пробовал что-то вроде этого в контроллере регистра

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 ответ

  1. Для исправления кода можно использовать следующее:

    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!');
    });
    

    Затем создайте представление типа so:

    <!-- View stored in resources/views/emails/registration.blade.php -->
    
    A new user, {{ $user->name }} has been registered
    

    Альтернативный способ сделать то же самое-использовать события и запускать такие события, как UserCreated в контроллере. Таким образом, вы можете иметь несколько прослушивателей к одним и тем же событиям (например, если вы позже хотите не только вызвать сообщение электронной почты администратору, но и сделать некоторые другие действия позже, вы можете просто добавить прослушиватель) или иметь несколько контроллеров, запускающих это событие (в случае, если есть другие способы регистрации пользователей)

    Я также рекомендую использовать почтовые очереди, чтобы сократить время ответа