doujiu4643 2016-03-09 18:26
浏览 249
已采纳

Laravel 5 - >将第二个参数传递给Mail :: send方法

I want to modify the create method in my AuthController. A mail with a verification link should be send to the users email after he send the registration form. It's almost done, but I have a problem, passing the users details into the function.

Here is what I have right now:

Mail::send('mails.registrierung', $data, function($message){
    $message->from('registrierung@junperbo.de', 'Registrierung');
    $message->to('email@yxz.de');
});

But it's clear, that a hardcoded email is not working. So I want to pass the created user to the function. I tried to global $user within the function (no success). I also tried to pass a second argument like:

Mail::send('mails.registrierung', $data, function($message, $user) {
    $message->from('registrierung@junperbo.de', 'Registrierung');
    $message->to($user->email);
});

The result is this error message (for the line Mail::send(....)):

Missing argument 2 for App\Http\Controllers\Auth\AuthController::App\Http\Controllers\Auth{closure}()

My whole create method:

protected function create(array $data)
{
    $user = User::create([
        'benutzername' => $data['benutzername'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'bestaetigt' => 0,
        'verfikations_schluessel' => str_random(60)
    ]);

    $data['user'] = $user;

    Mail::send('mails.registrierung', $data, function($message, $user){
        $message->from('registrierung@junperbo.de', 'Registrierung');
        $message->to($user->email);
    });

    return $user;
}

Any idea? Thanks!

  • 写回答

3条回答 默认 最新

  • dousaoxiancy199896 2016-03-09 20:17
    关注

    You can created a array() with all your data, then pass the array to the Mail function.

                $data = array('email'=>$request->input('Email'), 'nombre'=>$request->input('Nombre'));
    
                \Mail::send('email.action', ['data' => $data] , function ($message) use ($data) {
                    //remitente
                    $message->from(env('CONTACT_MAIL'), env('CONTACT_NAME'));
                    //asunto
                    $message->subject('Validación de Cuenta');
                    //receptor
                    $message->to($data['email'], $data['nombre']);
                });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。