Download the PHP package bwibrew/laravel-sitesettings without Composer
On this page you can find all versions of the php package bwibrew/laravel-sitesettings. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-sitesettings
Persistent CMS style site settings for Laravel
Support
This version supports Laravel 5.5 - 6 / PHP 7.2 and above.
Installation
Install using Composer by running:
Publish the config file with:
Publish the migrations with:
Then run table migrations with:
Configuring your models
Add the following interface, trait and $fillable
attribute to your Setting
model:
If using scopes then also add the following interface, trait and $fillable
attribute to your Scope
model:
File Uploads
To support the ability to save uploaded files as settings you also need to install the spatie/laravel-medialibrary
package.
Full installation instructions can be found here.
Here is the minimum set-up needed:
Publish the migration with:
Then run table migrations with:
Add a disk to app/config/filesystems.php
. e.g:
Lastly, you will need to use SettingWithMediaInterface
and ManagesSettingsWithMedia
instead
of SettingInterface
and ManagesSettings
on your Setting
model.
Usage
This package provides a convenient API for using the settings with an existing Eloquent Model.
Registering a new setting
A setting is created like this:
You can also assign a value when creating a setting:
You can then retrieve the value of the setting:
Updating a setting
To update an existing setting:
You can also retrieve the ID of the user whom last updated the setting and when the update was made.
Using scopes
You can categories your settings into 'scopes'. Scopes use a simple dot syntax on the setting name.
To assign or retrieve a setting in a scope, place the scope name in front of the setting name and separate them with a
dot: scope_name.setting_name
.
This works the same way with all methods which take a setting name as a parameter.
There are also a number of extra methods used with scopes:
To update or remove a scope:
Usage with file uploads
This package can make use of the amazing Spatie/MediaLibrary to provide the ability to associate settings with uploaded media.
To use a file upload as a setting simply set the file upload as the setting value.
Example:
The value returned on a file upload setting is a string controlled by the file_value_type
config value.
Configuration
Set use_scopes
to false
to disable the use of scopes.
The file_value_type
setting controls the value stored in the settings table. This can be set to 'file_name'
,
'path'
or 'url'
.
Testing
Run tests with:
All versions of laravel-sitesettings with dependencies
illuminate/support Version ^5.5 || ^6.0
illuminate/database Version ^5.5 || ^6.0