2016-08-02 6 views
0

Я следил за учебником по адресу this site, чтобы помочь мне создать проверку электронной почты для новых пользователей. я получаю сообщение об ошибке:Laravel 5.2 ошибка проверки электронной почты

FatalErrorException in ActivationService.php line 66: 
Call to a member function getActivation() on null 

Вот в routes.php:

Route::auth(); 
Route::get('user/activation/{token}', 'Auth\[email protected]')->name('user.activate'); 
Route::get('/', '[email protected]'); 
Route::get('auth/logout', 'Auth\[email protected]'); 
Route::get('/home', '[email protected]'); 

здесь файл .env

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.mailgun.org 
MAIL_FROM=*from address given by mailgun* 
MAIL_NAME=CompanyName 
MAIL_PORT=587 
MAIL_USERNAME=*Mailgun username* 
MAIL_PASSWORD=*Mailgun password* 
MAIL_ENCRYPTION=tls 

MAILGUN_DOMAIN=*mailgun domain* 
MAILGUN_SECRET=*secret key* 

Все остальное было сделано в соответствии с кодом приведенных в учебнике. Пожалуйста, обратитесь к коду there, так как мой код тот же для классов.

+0

Когда это происходит? Когда регистрируется новый пользователь или когда не активированный пользователь пытается войти в систему? – Makan

+0

Когда регистрируется новый пользователь. Он по-прежнему делает запись в базу данных SQL, несмотря на то, что вы выбрали ошибку. – omrakhur

+0

В конструкторе класса ActivationService вы инициализируете активацию Repo, как говорится в учебнике? Проблема в том, что функция $ this-> acticationRepo in shouldSend() равна null. Это то, что нужно исправить. – Makan

ответ

-1

Попробуйте добавить use App \ ActivationRepository; в ActivationService под использование Illuminate \ Mail \ Message;

Проблема заключается в том, что $ this-> activationRepo имеет значение null, а не экземпляр ActivationRepository;

+1

Оба класса ActivationRepository и ActivationService находятся под одним и тем же пространством имен. Добавление «use ...» не требуется. – Makan

+0

Я согласен с @Makan здесь – omrakhur