Customizing User Provider
Creating Your Own UserModel
If you want to customize user attributes, you need to create your own
User Provider class.
The only requirement is that your new class MUST extend the provided CodeIgniter\Shield\Models\UserModel
.
Shield has a CLI command to quickly create a custom UserModel
class by running the following
command in the terminal:
php spark shield:model UserModel
The class name is optional. If none is provided, the generated class name would be UserModel
.
Configuring to Use Your UserModel
After creating the class, set your model classname to the $userProvider
property
in app/Config/Auth.php:
public string $userProvider = \App\Models\UserModel::class;
Customizing Your UserModel
Customize your model as you like.
If you add attributes, don't forget to add the attributes to the $allowedFields
property.
<?php
declare(strict_types=1);
namespace App\Models;
use CodeIgniter\Shield\Models\UserModel as ShieldUserModel;
class UserModel extends ShieldUserModel
{
protected function initialize(): void
{
parent::initialize();
$this->allowedFields = [
...$this->allowedFields,
'first_name', // Added
'last_name', // Added
];
}
}