Skip to content

Add additional columns (meta boxes) to EloquentModel without add columns to the migration file

License

Notifications You must be signed in to change notification settings

lao9s/ModelMetaBox

Repository files navigation

Laravel EloquentModel Meta Box

Latest Version on Packagist Total Downloads Build Status

Add additional columns (meta boxes) to EloquentModel without add columns to the migration file

Installation

Via Composer

$ composer require lao9s/modelmetabox

Usage

Use the ModelMetaBox trait on the model you intend to track

use lao9s\ModelMetaBox\Traits\ModelMetaBoxTrait;

class Article extends Model
{
    use ModelMetaBoxTrait;

    ...
}

Publish config file.

php artisan vendor:publish --tag=ModelMetaBoxConfig

Migrate

php artisan migrate    

Change config file:

   // Override the delete method in the model to delete meta boxes before the model is deleted.
   'override_the_delete_method' => true,

Here are some code examples:

// Add/Update meta box to the article
$article->addMetaBox('author', 'Dima Botezatu');

// Support array data. Object or array data will be automatically converted to json. 
// If you have another type of data, you can manually convert it into json by adding the third true parameter
$article->addMetaBox('images', ['image1.jpg', 'image2.jpg', 'image3.jpg']);

// Get meta box by specific key. $withValue parameter will return only value not the model object
$article->getMetaBox('author', $withValue = false)

// Also the meta box model have any methods: getValue, getKey or isJson
// Working only if you get metabox object model
$author = $article->getMetaBox('author')
$author->getValue();
$author->getKey();
$author->isJson();

// Get all meta boxes. $withValue parameter will return only values not the models object
$article->getAllMetaBoxes($withValue = false)

// Remove meta box
$article->removeMetaBox('author');

// Remove all meta boxes
$article->removeAllMetaBoxes();

Credits

License

MIT. Please see the license file for more information.

About

Add additional columns (meta boxes) to EloquentModel without add columns to the migration file

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages