Download the PHP package yarob/laravel-model-settings without Composer
On this page you can find all versions of the php package yarob/laravel-model-settings. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yarob/laravel-model-settings
More information about yarob/laravel-model-settings
Files in yarob/laravel-model-settings
Package laravel-model-settings
Short Description Laravel 5.0+ package to manage eloquent settings in JSON format
License MIT
Informations about the package laravel-model-settings
Laravel Model Settings
Add settings feature to Eloquent models in Laravel 5.
Background
This has been developed to simplify adding "settings" feature to any eloquent model on your laravel project.
Settings WILL be stored in json format/object! Is json the best way? Well it's your call! pros: super flexible, you can add/remove settings without code alteration (apart from app/config/model-settings.php see below). cons: expensive when querying/searching for certain key => value in settings per model.
settings will be casted into Laravel Collection for maximum functionality and usage.
Installation
To install the package via Composer:
Then, update config/app.php by adding an entry for the service provider.
Finally, via terminal, publish the default configuration file:
Updating your Eloquent Models
Your models should use the hasSettings trait.
You must also add settings to your fillable array as shown in the example below
Migration
Your model MUST have column named settings in the database to store the settings values.
You can add this manually via a migration on the intended model $table->json('settings')->nullable();.
The column should be big enough to accommodate all settings after json encoded.
Usage
Better demonstrated in example
Configuration
Configuration was made to be as flexible as possible. You can add the allowed settings keys per Model basis.
Global configuration can be set in the app/config/model-settings.php file. By default, phone_number and address settings keys have been added to User model. But feel free to change that.
If a configuration isn't set, then the package defaults from
vendor/yarob/laravel-model-settings/resources/config/model-settings.php are used.
Here is an example configuration:
Pay attention that Model name in model-settings.php is case sensitive! so if you have a foo Model, then
Copyright and License
laravel-model-settings was written by Yarob Al-Taay and is released under the MIT License.
Copyright (c) 2017 Yarob Al-Taay