User Repository

To work with the User Repository, use the following Facade:

use Statamic\Facades\User;

Methods

Methods Description
all() Get all Users
current() Get current User
find($id) Get User by id
findByEmail($email) Get User by email
findByOAuthID($provider, $id) Get User by an ID from an OAuth provider
query() Query Builder
make() Makes a new User instance

Querying

Get a user by ID

User::query()
->where('id', 'abc123')
->first();
 
// Or with the shorthand method
User::find('abc123');

Get a user by email

User::query()
->where('email', '[email protected]')
->first();
 
// Or with the shorthand method
User::findByEmail('[email protected]');

Get a user by OAuth ID

User::findByOAuthId('github', '123');

Get all super users

User::query()->where('super', true)->get();

Get the currently logged in user

User::current();

Creating

Start by making an instance of a user with the make method.
You need at least an email before you can save a user.

$user = User::make()->email('[email protected]');

You may call additional methods on the user to customize it further.

$user
->password('plaintext') // it will be hashed for you
->data(['foo' => 'bar']) // an array of data (front-matter)
->preferences($prefs) // array of preferences
->roles($roles) // array of roles
->groups($groups); // array of groups

Finally, save it.

$user->save();
HR: Section
Learn More!

Learn more about User Repository in these related docs:

Fieldtypes

shipment-container
HR: Section
Docs feedback

Submit improvements, related content, or suggestions through Github.

Betterify this page →