Laravel Model Settings
Published on by Paul Redmond
Laravel Model Settings is a package by Lorand Gombos to provide model settings configuration in a database field or a separate database table.
The package ships with two traits—settings in a field or table—that you can configure in a given model (one or the other, not both). First, the settings field is a JSON field:
// Settings field use Glorand\Model\Settings\Traits\HasSettingsField; class User extends Model{ use HasSettingsField; //define only if you select a dirrerent name from the default public $settingsFieldName = 'user_settings'; }
And a separate settings table option:
use Glorand\Model\Settings\Traits\HasSettingsTable; class User extends Model{ use HasSettingsTable;}
Here’s some basic usage examples in a model:
// Get all settings$user->settings()->all(); // Get a specific setting$user->settings()->get('some.setting');$user->settings()->get('some.setting', 'default value'); // Add/Update$user->settings()->apply((array)$settings);$user->settings()->set('some.setting', 'new value');$user->settings()->update('some.setting', 'new value'); // Remove$user->settings()->delete('some.setting');
You can learn more about this package, get full installation instructions, and view the source code on GitHub at glorand/laravel-model-settings.