PHP code example of netkod-bilisim / laravel-model-settings-bag

1. Go to this page and download the library: Download netkod-bilisim/laravel-model-settings-bag library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

netkod-bilisim / laravel-model-settings-bag example snippets


Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->string('email')->unique();
    $table->string('password');
    $table->json('settings')->nullable();
    $table->rememberToken();
    $table->timestamps();
});

use NetkodBilisim\LaravelModelSettingsBag\ModelHasSettingsBag;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable 
{
    use ModelHasSettingsBag;
     
    // truncated for brevity..
}

Schema::create('user_template_settings', function (Blueprint $table) {
    $table->id();
    $table->unsignedInteger('user_id');
    $table->json('settings')->nullable();
    $table->rememberToken();
    $table->timestamps();
});

use NetkodBilisim\LaravelModelSettingsBag\ModelHasSettingsBag;
use Illuminate\Database\Eloquent\Model;

class UserTemplateSetting extends Model 
{
    use ModelHasSettingsBag;
}

class User extends Model 
{
    use ModelHasSettingsBag;

    public function templateSettings()
    {
        return $this->hasOne(User TemplateSetting::class);
    }
}

$user = App\User::first();

$user->settings()->all();    // Returns an array of the user's settings.
$user->settings('template')->get();    // Returns an array of a user's template settings.

$user = App\User::first();

$user->settings()->get('some.setting');
$user->settings()->get('some.setting', $defaultValue); // With a default value.

$user->settings('template')->get('layout.boxed');
$user->settings('template')->get('layout.boxed', $defaultValue); // With a default value.

$user = App\User::first();

$user->settings()->update('some.setting', 'new value');
$user->settings('template')->update('layout.boxed', 'new value');

$user = App\User::first();

$user->settings()->has('some.setting');
$user->settings('template')->has('layout.boxed');

$user = App\User::first();

$user->settings()->delete('some.setting');
$user->settings('template')->delete('layout.boxed');

use NetkodBilisim\LaravelModelSettingsBag\ModelHasSettingsBag;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable 
{
    use ModelHasSettingsBag;

    /**
     * The model's default settings.
     * 
     * @var array
     */
    protected $defaultSettings = [
    	'homepage' => '/profile'
    ];

    // truncated for brevity..
}

use NetkodBilisim\LaravelModelSettingsBag\ModelHasSettingsBag;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable 
{
    use ModelHasSettingsBag;

    /**
     * The model's allowed settings.
     * 
     * @var array
     */
    protected $allowedSettings = ['homepage'];

    // truncated for brevity..
}

use NetkodBilisim\LaravelModelSettingsBag\ModelHasSettingsBag;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable 
{
    use ModelHasSettingsBag;

    /**
     * The settings field name.
     * 
     * @var string
     */
    protected $mapSettingsTo = 'config';
}