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']