Вы можете просто манипулировать столбцом email_verified_at
в таблице users
.
Я предлагаю использовать наблюдателя:
php artisan make:observer UserObserver --model=User
Вы можете использовать конфигурацию или базу данных, чтобы определить, использовать проверочный адрес электронной почты или нет.
UserObserver
class UserObserver
{
/**
* Handle the user "created" event.
*
* @param \App\User $user
* @return void
*/
public function created(User $user)
{
// Let's say you use config
if (config('app.email_verification') == false) {
$user->email_verified_at = now();
$user->save();
}
}
//
}
Чтобы определить доставку электронной почты, вы можете переопределить sendEmailVerificationNotification
в модели пользователя:
/**
* Send the email verification notification.
*
* @return void
*/
public function sendEmailVerificationNotification()
{
if (config('app.email_verification')) {
$this->notify(new VerifyEmail);
}
}
Обновление
Сохранить email_verified_at
как null
, вы можете удалить наблюдателя, а затем обновить Auth::routes
:
web. php
Auth::routes([
'verify' => config('app.email_verification')
]);
Route::group([
'middleware' => [config('app.email_verification') ? 'verified' : null]
], function () {
// protected routes
Route::get('dashboard', 'DashboardController@index');
});