Laravel 4 Mail не работает должным образом

В настоящее время я работаю над веб-приложением, которое требует от пользователей подтверждения, прежде чем они смогут использовать свою учетную запись. Я использую Cartalyst's Sentry для регистрации пользователей и отправляю электронную почту, используя встроенную функцию Mail, но всякий раз, когда я регистрируюсь, я получаю следующую ошибку:

Argument 1 passed to Illuminate\Mail\Mailer::__construct() must be an instance of 
Illuminate\View\Environment, instance of Illuminate\View\Factory given, 
called in 
/var/www/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php 
on line 34 and defined 

Я не могу понять, что вызывает это. В верхней части моего кода я добавил "использовать почту", иначе я получил бы еще одну ошибку:

Class '\Services\Account\Mail' not found 

Код

// Create the user
$user = $this->sentry->register(array(
    'email'             => e($input['email']),
    'password'          => e($input['password'])
));

$activationCode = $user->getActivationCode();

$data = array(
    'activation_code'   => $activationCode,
    'email'             => e($input['email']),
    'company_name'      => e($input['partnerable_name'])
);

// Email the activation code to the user

Mail::send('emails.auth.activate', $data, function($message) use ($input)
{
    $message->to(e($input['email']), e($input['partnerable_name']))
    ->subject('Activate your account');
});

Кто-нибудь понял, что решение этой ошибки?

Заранее спасибо,

Kibo

2 ответа

Удалите /bootstrap/compiled.php Я думаю, что это будет работать для вас.

Вы должны удалить это из своего Mail::send call. Функция должна быть третьим параметром, поэтому я не уверен, что вы пытаетесь сделать здесь - поле $input['email'] уже будет доступно внутри функции из-за вашего "use ($input)"

$email = e($input['email']
Другие вопросы по тегам