Persistent settings in Laravel
- Settings
Setting is a Laravel package so you can install it via Composer. Run this command in your terminal from your project directory:
composer require shipu/settings
Now run this command in your terminal to publish this package resources:
php artisan vendor:publish --provider="Shipu\Settings\Providers\SettingsServiceProvider"
If you run vendor:publish
then you have add below code in your settings model
protected $table = 'site_settings'; // you can change your database table name.
public $timestamps = false;
Use GetSettings
traits in your model.
For getting all settings value paired by key you can use all
method.
YourSettingModel::getAll(); // return collection
For set value you can use set
method.
YourSettingModel::set('key', 'value'); // return null
Multiple data store by key
YourSettingModel::set(['key1' => 'value', 'key2' => ['subkey2' => 'value-of-subkey2'] ]); // return null
For get value you can use get
method.
YourSettingModel::get('key'); // return collection or string or null
Fallback Support:
YourSettingModel::get('key2.subkey2'); // return collection or string or null
You can also getting all setting value
YourSettingModel::get(); // return collection
For checking key exists or not you can use has
method.
YourSettingModel::has('key'); // return bool
Multiple key Forget:
YourSettingModel::has(['key1', 'key2']); // return collection
For delete key you can use forget
method.
YourSettingModel::forget('key'); // return integer 0 or 1
Multiple key Forget:
YourSettingModel::forget(['key1', 'key2']); // return interger - how many key successfully delete.