Installation

composer require konekt/user
touch config/concord.php

Edit config/concord.php and add this content to it:

<?php

return [
    'modules' => [
        Konekt\User\Providers\ModuleServiceProvider::class
    ]
];

Laravel 5.4: Register The Service Provider Edit config/app.php and add this line to the providers array (below 'Package Service Providers', always above 'Application Service Providers'):

Konekt\User\Providers\ModuleServiceProvider::class

Test if all worked well by invoking the command:

php artisan concord:modules

Now you should see this:

+----+--------------------+--------+---------+-------------+-----------------+
| #  | Name               | Kind   | Version | Id          | Namespace       |
+----+--------------------+--------+---------+-------------+-----------------+
| 1. | Konekt User Module | Module | 1.2.0  | konekt.user | Konekt\User     |
+----+--------------------+--------+---------+-------------+-----------------+

TIP: Try php artisan concord:modules -a to see ALL modules

Migrations

Configure .env, along with a database.

Afterwards run the migrations:

php artisan migrate

The user module contains 2 migrations out of the box

Laravel 5.8 and Bigint Compatibility

As of Laravel 5.8, migration stubs use the bigIncrements method on ID columns by default. Previously, ID columns were created using the increments method.

Foreign key columns must be of the same type. Therefore, a column created using the increments method can not reference a column created using the bigIncrements method.

This package contains the Profile model having the profile table beneath. The profile belongs to a user via the user_id key. In order to keep the above mentioned compatibility, the user_id field must be the same type (int or bigint) as the user table's id field.

The USER_ID_IS_BIGINT env support introduced in version 1.1 has been removed as of v1.2 due to issues with it.

To solve this problem, the profiles table migration uses the Laravel Migration Compatibility package. It attempts to automatically detect the actual type from the database.

In case autodetection fails on your system, you can explicitly tell the exact type via configuration:

// for bigint
config(['migration.compatibility.map.comments.id' => 'bigint unsigned']);

// for "old" int:
config(['migration.compatibility.map.comments.id' => 'int unsigned']);

For more options refer to the Configuration section.

Laravel Auth Support

First, run php artisan make:auth in your application.

If the "final" user class is not going to be App\User then don't forget to modify model class this to your app's config/auth.php file:

    //...
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            // 'model' => App\User::class <- change this to:
            'model' => Konekt\User\Models\User::class,
        ],
    //...

OR: Another approach is to keep App\User but modify the class to extend this user model:

namespace App;

// No need to use Laravel default traits and properties as
// they're already present in the base class

class User extends \Konekt\User\Models\User
{
}

And add this to you AppServiceProviders's boot method:

   $this->app->concord->registerModel(\Konekt\User\Contracts\User::class, \App\User::class);

Next: Active/Inactive Status »