Laravel - 如何将变量注入密码提醒电子邮件

时间:2013-12-23 13:51:19

标签: php laravel laravel-4

使用Laravel 4.1的新密码代理,有没有办法将一些数据传递给密码提醒视图?具体来说,我希望能够改变密码重置视图的URL。

在这里查看:http://laravel.com/api/source-class-Illuminate.Auth.Reminders.PasswordBroker.html#97-118我不确定它是否足够灵活,可以在不完全扩展此类的情况下接受数据......

3 个答案:

答案 0 :(得分:8)

不幸的是,Searsaw建议的代码对我不起作用。我想我错了。但我找到了下一个解决方案:

    View::composer('emails.auth.reminder', function($view) use ($user) {
        $view->with([
            'first_name'  => $user->first_name,
            'email'       => $user->email,
            'newPassword' => Input::get('new_password'),
            'logo'         => asset('/images/mail/logo.png'),
            'twitter_img'  => asset('/images/mail/btn_twitter_pressed.png'),
            'facebook_img' => asset('/images/mail/btn_fb_pressed.png')
        ]);
    });

我在Password::remind方法

之前使用此代码

答案 1 :(得分:0)

我不确定我是否完全得到了这个问题,但是如果你想传递一些额外的数据,你可以在Laravel中使用这样的代码: ` $ activation = [];

$ activation ['email'] = $ email;

$ activation ['subject'] ='有些信息';

Mail :: send('emails.auth.activate',$ data,function($ message)use($ activation)

{

$ MESSAGE->至($激活[ '电子邮件']) - &GT受试者($激活[ '主题']);

});`

答案 2 :(得分:0)

提醒方法的数组中的任何内容都将传递给提醒视图。你可以抽出很多这种逻辑并手动完成所有事情。

$user = Password::getUser(Input::get('email'));

$remind_repo = App::make('Illuminate\Auth\Reminders\ReminderRepositoryInterface');
$token = $remind_repo->create($user);

$data['name'] = 'Forest Gump';
$data['likes'] = ['running', 'chocolates'];
$data['girlfriend'] = 'Jenny';
$data['user'] = $user;
$data['token'] = $token;

Mail::send('email.reminder', $data, function($m) use ($user)
{
    $m->to($user->getReminderEmail());
});

现在,您的视图可以访问namelikesgirlfriendusertoken