![data_forget Helper for Laravel](https://laravelsage.com/storage/media/25/conversions/data_forget-helper-responsive.jpg)
data_forget Helper for Laravel
Since Laravel version 10.15, there is a new utility function called data_forget that allows you to remove keys from an array or object using a "dot" notation.
3 min read
Tags:
The Laravel Level-Up package, furthermore, allows users to gain experience points (XP) for performing actions on your site, through a gamification process that enables you to track user progress and implement gamification elements.
You can install the package via composer:
composer require cjmellor/level-up
You can publish and run the migrations with php artisan:
php artisan vendor:publish --tag="level-up-migrations"
php artisan migrate
Publish the config file with php artisan:
php artisan vendor:publish --tag="level-up-config"
This is the contents of the published config file:
return [
/*
|--------------------------------------------------------------------------
| User Foreign Key
|--------------------------------------------------------------------------
|
| This value is the foreign key that will be used to relate the Experience model to the User model.
|
*/
'user' => [
'foreign_key' => 'user_id',
'model' => App\Models\User::class,
],
/*
|--------------------------------------------------------------------------
| Experience Table
|--------------------------------------------------------------------------
|
| This value is the name of the table that will be used to store experience data.
|
*/
'table' => 'experiences',
/*
|-----------------------------------------------------------------------
| Starting Level
|-----------------------------------------------------------------------
|
| The level that a User starts with.
|
*/
'starting_level' => 1,
/*
|-----------------------------------------------------------------------
| Multiplier Paths
|-----------------------------------------------------------------------
|
| Set the path and namespace for the Multiplier classes.
|
*/
'multiplier' => [
'enabled' => env(key: 'MULTIPLIER_ENABLED', default: true),
'path' => env(key: 'MULTIPLIER_PATH', default: app_path(path: 'Multipliers')),
'namespace' => env(key: 'MULTIPLIER_NAMESPACE', default: 'App\\Multipliers\\'),
],
/*
|-----------------------------------------------------------------------
| Level Cap
|-----------------------------------------------------------------------
|
| Set the maximum level a User can reach.
|
*/
'level_cap' => [
'enabled' => env(key: 'LEVEL_CAP_ENABLED', default: true),
'level' => env(key: 'LEVEL_CAP', default: 100),
'points_continue' => env(key: 'LEVEL_CAP_POINTS_CONTINUE', default: true),
],
/*
| -------------------------------------------------------------------------
| Audit
| -------------------------------------------------------------------------
|
| Set the audit configuration.
|
*/
'audit' => [
'enabled' => env(key: 'AUDIT_POINTS', default: false),
],
/*
| -------------------------------------------------------------------------
| Record streak history
| -------------------------------------------------------------------------
|
| Set the streak history configuration.
|
*/
'archive_streak_history' => [
'enabled' => env(key: 'ARCHIVE_STREAK_HISTORY_ENABLED', default: true),
],
/*
| -------------------------------------------------------------------------
| Default Streak Freeze Time
| -------------------------------------------------------------------------
|
| Set the default time in days that a streak will be frozen for.
|
*/
'freeze_duration' => env(key: 'STREAK_FREEZE_DURATION', default: 1),
];
Note: XP is enabled by default. You can disable it in the config
Add the GiveExperience
trait to your User
model.
use LevelUp\Experience\Concerns\GiveExperience;
class User extends Model
{
use GiveExperience;
// ...
}
Give XP Point to User
$user->addPoints(10);
There will be a new record added to the experiences table, which stores User points. If a record already exists, it will be updated instead.
Note: If you didn't set up your Level structure yet, a default Level of 1 will be added to get you started.
Deduct XP points from a User
$user->deductPoints(10);
Set XP points to a User
For an event where you just want to directly add a certain number of points to a User, you can do so. However, points can only be set if the User has an Experience Model.
$user->setPoints(10);
Retrieve a Users’ points
$user->getPoints();
More Advance Documentation is available at https://github.com/cjmellor/
Full-stack developer with a knack for Merging creativity with technical expertise for standout solutions.
Since Laravel version 10.15, there is a new utility function called data_forget that allows you to remove keys from an array or object using a "dot" notation.
The ChatGPT Laravel API Package Generator package for Laravel generates smart API mocks in Laravel using ChatGPT prompts:
You can make your Laravel app multi-tenant using the Tenancy for Laravel Tenant package. This tenancy package lets you make any Laravel application multi-tenant without rewriting it.
Are you ready to take your Laravel skills to the next level and build extraordinary applications? Look no further! In this blog post, we will unveil a treasure trove of top packages that will revolutionize your development process.
The Livewire Tables package brings dynamic tables for models to Laravel Livewire. These are some of the features which you will get out of the box:
The MJML PHP package by Spatie can help you create email templates more easily. But there is a catch. It can be difficult to craft visually appealing and functional email templates that work across a variety of email clients.
Subscribe for 20+ new Laravel tutorials every week
You can unsubscribe at any time. You'll also get -20% off my courses!