Model can change own email and verify it

0.1.0 2018-09-19 14:15 UTC

This package is not auto-updated.

Last update: 2022-11-19 10:09:21 UTC


Build Status

Laravel Email Change (non-released)



  • PHP >= 7.1.3
  • Laravel ~5.x
  • stylers/laravel-email-verification


composer require stylers/laravel-email-change

Publish the config of email verification package

php artisan vendor:publish --provider="Stylers\EmailVerification\Frameworks\Laravel\ServiceProvider"

Run the migrations

php artisan migrate


Set up the abstraction

use Illuminate\Database\Eloquent\Model;
use Stylers\EmailVerification\NotifiableInterface;
use Illuminate\Notifications\Notifiable;
use Stylers\EmailVerification\EmailVerifiableInterface;
use Stylers\EmailVerification\Frameworks\Laravel\Models\Traits\EmailVerifiable;
use Stylers\EmailChange\Contracts\EmailChangeableInterface;
use Stylers\EmailChange\Models\Traits\EmailChangeable;

class User extends Model implements NotifiableInterface, EmailVerifiableInterface, EmailChangeableInterface
    use Notifiable;
    use EmailVerifiable;
    use EmailChangeable;
    public function getName(): string
        return (string)$this->name;

Create change request

$emailChangeableUser = User::first();
$changeRequestInstance = $emailChangeableUser->createEmailChangeRequest($newEmail);

Finish change request

This package requires Laravel Email Verification package and the ChangeEmail listener handle it's VerificationSuccess event. If you want to finish change request, you have to implement email-verification route. Read more: